[关闭]
@zwh8800 2017-06-27T16:41:00.000000Z 字数 1423 阅读 287971

女朋友都能看懂的 git 速查

blog git 速查


为女朋友总结了一些常用的 git 操作。这个速查默认:以 master 为主分支,开发新功能创建新分支。

atlassian-getting-git-right.jpg-94.4kB


1. 开发一个功能

  1. # 首先确保自己在 master 且代码是最新的
  2. git checkout master
  3. git pull
  4. # 在最新的代码上建一个分支
  5. git checkout -b xxx
  6. # 在本地进行开发
  7. do something
  8. git commit -m "zzz"
  9. do something
  10. git commit -m "yyy"
  11. do something
  12. git commit -m "www"
  13. # 开发完成,push开发分支
  14. git push -u origin xxx
  15. # 在代码审核工具上创建 pull request
  16. # 根据别人的审核意见,修改代码
  17. do something
  18. git commit -m "yyy"
  19. do something
  20. git commit -m "bbb"
  21. # 将修改后的代码push
  22. git push
  23. # 审核通过,按按钮合并 pr

2. 审核过了之后有冲突

  1. # 首先把 master 上的代码更新一下
  2. git checkout master
  3. git pull
  4. # 然后把开发分支的代码 rebase 到最新的代码之上
  5. git checkout xxx
  6. git rebase master
  7. # 这时,会出现冲突,打开文件,手动把文件修改正确
  8. # 然后执行这个:
  9. git add .
  10. git rebase --continue
  11. # 这时,开发分支 xxx 已经和 master 没有冲突了,push 上去
  12. git push
  13. # 在代码审核工具上,按按钮合并

3. 开发了一半的功能,不想 commit 也不想丢掉

  1. # 把修改暂存起来
  2. git add .
  3. git stash
  4. # 可以查看刚刚暂存的信息
  5. git stash list
  6. # 现在需要继续开发,把暂存的东西 pop 出来
  7. git stash pop
  8. # 现在再看暂存列表,已经清空了
  9. git stash list

4. 只提交某几个文件,其他几个文件暂存起来

  1. # 只提交这几个文件
  2. git add 1.go 2.go 3.go
  3. git commit -m "zzz"
  4. # 看一下,剩下的文件确实未提交
  5. git status
  6. # 暂存
  7. git add .
  8. git stash

5. 只提交某几行,其余行暂存

打开 sourcetree

image_1aps6uir211qg14423s41qjq85g9.png-47.5kB

选中像提交的行,点按钮暂存行

然后:

  1. # 只提交某几行
  2. git commit -m "zzz"
  3. # 看一下,剩下的行确实没提交
  4. git status
  5. # 暂存
  6. git add .
  7. git stash

已暂存的修改,叫做 stashed changes

6. 已经 git add 的文件,想变回未 add 的状态

  1. git reset HEAD 1.go
  2. # 如果想把所有文件都未 add 的状态
  3. git reset HEAD .

已经被 add 的修改,叫做 staged changes;未 add 的叫做 unstaged changes

7. 已经修改,但未 add 的文件,想变回未修改的状态

  1. git checkout -- 1.go
  2. # 如果想把所有文件都变回未修改的状态
  3. git checkout -- .

8. 已经 commit 了,但是不想要了,想回到上一个 commit 重新写

  1. # 回到上一个 commit,把这个 commit 的修改变成 unstaged changes
  2. git reset HEAD^
  3. # 把 unstaged changes 变回未修改的状态
  4. git checkout -- .
  5. # 重新写

9. 已经 commit,并且 push 了,但是不想要了,想回到上一个 commit 重新写

  1. # 同上,但是最后再push的时候需要加 -f
  2. git push -f

9. 上个方法太暴力了

  1. # 创建一个和上个提交完全相反的提交
  2. git revert HEAD
  3. git push
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注