# git安装和常用命令

# git安装

官网下载地址 (opens new window)

安装完成后,在开始菜单里找到“Git”->“Git Bash”

1

蹦出一个类似命令行窗口的东西,就说明Git安装成功!

2

安装完成后,还需要最后一步设置,在命令行输入

git config --global user.name "Your Name"
git config --global user.email "email@example.com"
1
2

3

最后会在C盘生成一个.gitconfig文件,也可以在里面手动修改

4


# 连接远程仓库

# 生成ssh key公钥

1. 创建SSH Key。在windows下查看c盘->用户->自己的用户名->.ssh下是否有id_rsa、id_rsa.pub文件,如果没有需要手动生成。

打开git bash,在控制台中输入以下命令

$ ssh-keygen -t rsa -C "youremail@example.com"
1
  • 密钥类型可以用-t选项指定。如果没有指定则默认生成用于SSH-2的RSA密钥。这里使用的是rsa

  • 同时在密钥中有一个注释字段,用-C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行。

  • 输入完毕后程序同时要求输入一个密语字符串(passphrase),空表示没有密语。接着会让输入2次口令(password),空表示没有口令。3次回车即可完成当前步骤,此时c盘>用户>自己的用户名>.ssh目录下已经生成好了。

2. 登录github。打开setting->SSH keys,点击右上角New SSH key,把生成好的公钥id_rsa.pub文件里面的内容复制粘贴进key输入框中

5

# 常用命令

# 初始化创建仓库

  • git init
    把这个目录变成Git可以管理的仓库

  • git add filename
    将工作区文件添加到缓存区,-A是添加所有

  • git commit -m 'message'
    将缓存区文件提交到git仓库

# 查看修改和差异

  • git status
    查看当前分支有哪些修改

  • git diff
    查看当前没有add的内容

  • git diff --cache
    查看已经add但是没有commit的内容

  • git diff HEAD
    上面两个内容的合并

  • git reset --hard HEAD
    指定回到哪个版本,HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard HEAD。

  • git log
    穿梭前,可以查看提交历史,以便确定要回退到哪个版本。

  • git reflog
    要重返未来,用查看命令历史,以便确定要回到未来的哪个版本。

  • git checkout -- file
    丢弃该文件在工作区的修改,命令中的-- 很重要,没有-- ,就变成了“切换到另一个分支”的命令

# 远程仓库

  • git clone XXX
    克隆一份代码到本地仓库

  • git pull xxx
    把远程库的代码更新到本地

  • git fetch xxx
    把远程库的代码更新到本地库

与git pull相比git fetch相当于是从远程获取最新版本到本地,但不会自动merge。如果需要有选择的合并git fetch是更好的选择。效果相同时git pull将更为快捷

  • git push xxx
    把本地库的修改提交到远程库中

  • git pull --rebase origin master
    强制把远程库的代码更新到当前分支上面

# 分支

  • git branch
    查看分支

  • git branch test
    创建test分支

  • git checkout test
    切换到test分支

  • git checkout -b test
    新建并切换test分支

  • git branch -d test
    删除test分支

  • git merge test
    假设当前在mastert主支上面,把test合并到master上

  • git merge tool
    调用merge工具

# 缓存

  • git stash
    把未完成的修改缓存到栈容器中

  • git stash list
    查看所有的缓存

  • git stash pop
    恢复本地分支到缓存状态

# 团队协作git操作流程

  • 克隆一个全新的项目,完成新功能并且提交
  1. git clone XXX //克隆代码库
  2. git checkout -b test //新建分支
  3. modify some files //完成修改
  4. git add . //把修改加入stage中
  5. git commit -m '' //提交修改到test分支
  6. review代码
  7. git checkout master //切换到master分支
  8. git pull //更新代码
  9. git checkout test //切换到test分支
  10. git meger master //把master分支的代码merge到test分支
  11. git push origin 分支名//把test分支的代码push到远程库
  • 目前正在test分支上面开发某个功能,但是没有完成。突然一个紧急的bug需要处理
  1. git add .
  2. git stash
  3. git checkout bugFixBranch
  4. git pull --rebase origin master
  5. fix the bug
  6. git add .
  7. git commit -m ''
  8. git push
  9. git checkout test
  10. git stash pop
  11. continue new feature's development