基礎Git命令
1.提交
git commit -m "annotation"
以當前分支(master)的當前節點作爲父節點新建一個子節點,其他分支不受影響:
2.新建分支
git branch <new_branch_name>
3.切換分支
git checkout <branch_name>
4.分支新建和切換同時完成
git checkout -b <new_branch_name>
5.分支合併
git merge bugFix
上述命令將bugFix分支合併到master分支上,如圖:
當前master分支的C4節點包含了所有代碼庫的修改,而bugFix分支留待解決:
git checkout bugFix
git merge master
此時,兩個分支均到達最新節點,上溯到C0包括代碼庫所有的修改記錄
6.分支合併的另一種方式
git rebase master
命令將bugFix分支裏的工作直接移動master分支上,使得並行開發的工作看起來像線性開發
接着更新master分支:
git checkout master
git rebase bugFix
高級Git命令
1.分離HEAD
HEAD初始一般指向分支名,分支名指向當前提交記錄節點,查看HEAD指向:
cat ./.git/HEAD
git symbolic-ref HEAD
使用下列命令切換HEAD到指定節點
git checkout <node_hash_name>
2.便捷分離HEAD
沒有可視化提交樹的情況下,使用git log查看提交記錄的哈希值,40位字符只需要輸入前幾位唯一標識即可。
推薦使用相對引用:
git checkout HEAD^ 向上移動一個提交記錄,即父節點
git checkout HEAD~<num> 向上移動多個提交記錄
3.強制修改分支位置
git branch -f master HEAD~3
上述命令將master分支強制指向HEAD的第三級父提交節點
4.撤銷變更
(1) git reset
將本地分支記錄回退幾個提交記錄來實現撤銷更改,使回退路徑上的幾個提交記錄未存在過一樣
git reset HEAD~1
若使用git reset HEAD則無事發生
C2提交記錄節點消失
(2) git revert
git reset 修改的是本地代碼庫的記憶,對遠端分支不做影響,爲了撤銷更改並分享給別人,使用git revert
git revert HEAD
上述命令撤銷當前提交記錄節點的修改,複製一份父節點,新的提交記錄C2’與C1相同,可以推送到遠程倉庫與別人分享
整理提交記錄
未完待續