为女朋友总结了一些常用的 git 操作。这个速查默认:以 master 为主分支,开发新功能创建新分支。
1. 开发一个功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| git checkout master git pull
git checkout -b xxx
do something git commit -m "zzz"
do something git commit -m "yyy"
do something git commit -m "www"
git push -u origin xxx
do something git commit -m "yyy"
do something git commit -m "bbb"
git push
|
2. 审核过了之后有冲突
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| git checkout master git pull
git checkout xxx git rebase master
git add . git rebase --continue
git push
|
3. 开发了一半的功能,不想 commit 也不想丢掉
1 2 3 4 5 6 7 8 9 10 11 12
| git add . git stash
git stash list
git stash pop
git stash list
|
4. 只提交某几个文件,其他几个文件暂存起来
1 2 3 4 5 6 7 8
| git add 1.go 2.go 3.go git commit -m "zzz"
git status
git add . git stash
|
5. 只提交某几行,其余行暂存
打开 sourcetree
选中像提交的行,点按钮暂存行
然后:
1 2 3 4 5 6 7
| git commit -m "zzz"
git status
git add . git stash
|
已暂存的修改,叫做 stashed changes
6. 已经 git add 的文件,想变回未 add 的状态
1 2 3 4
| git reset HEAD 1.go
git reset HEAD .
|
已经被 add 的修改,叫做 staged changes
;未 add 的叫做 unstaged changes
7. 已经修改,但未 add 的文件,想变回未修改的状态
1 2 3 4
| git checkout -- 1.go
git checkout -- .
|
8. 已经 commit 了,但是不想要了,想回到上一个 commit 重新写
1 2 3 4 5 6
| git reset HEAD^
git checkout -- .
|
9. 已经 commit,并且 push 了,但是不想要了,想回到上一个 commit 重新写
9. 上个方法太暴力了
1 2 3
| git revert HEAD git push
|