非git使用教程,只是記錄在實際使用中的一些重點、難點,以及需要注意的地方。
設置永久訪問權(quán)限
git config --global credential.helper store
子模塊
submodule
- 刪除
git rm -rf [path]
[path]的值在.gitmodule文件中查看。
舉例:git rm -rf src/Libraries/Autofac
遠程庫
- 添加遠程庫
git remote name url - 同步遠程庫到本地
- 建立并切換分支
git pull
分支
-
設置本地分支跟蹤遠程分支
方法一 設置同名本地分支 `git checkout --track origin/serverfixBranch' 設置不同名本地分支 `git checkout -b sf origin/serverfixBranch` 方法二 `git checkout 本地分支名稱` `git branch -u 遠程分支名稱` 設置本地分支不跟蹤任何遠程分支
git checkout 本地分支名稱
git branch --unset-upstream使用本地分支創(chuàng)建遠程分支
git push 遠程庫名稱 HEAD:待創(chuàng)建的遠程分支名稱
git reflog的使用
reflog 會記錄所有HEAD的歷史,也就是說當你做 reset,checkout等操作的時候,這些操作會被記錄在reflog中。
$ git reflog
b7057a9 HEAD@{0}: reset: moving to b7057a9
98abc5a HEAD@{1}: commit: more stuff added to foo
b7057a9 HEAD@{2}: commit (initial): initial commit
如果要找回我們第二commit,只需要做如下操作:
$ git reset --hard 98abc5a
再來看一下 git 記錄:$ git log* 98abc5a (HEAD, master) more stuff added to foo* b7057a9 initial commit所以,如果你因為reset等操作丟失一個提交的時候,你總是可以把它找回來。
除非你的操作已經(jīng)被git當做垃圾處理掉了,一般是30天以后。
git reset的使用
git reset --soft
只將HEAD移動到指定的提交上。index和working tree(本地工作副本)不動。
git reset --mixed
將HEAD移動到指定的提交上,并且撤銷index。working tree(本地工作副本)不動。
git reset --hard
將HEAD移動到指定的提交上,并且撤銷index和working tree(本地工作副本)。