Learn Git Branching 筆記

基礎Git命令

1.提交

git commit  -m "annotation"

以當前分支(master)的當前節點作爲父節點新建一個子節點,其他分支不受影響:
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相同,可以推送到遠程倉庫與別人分享
在這裏插入圖片描述在這裏插入圖片描述

整理提交記錄

未完待續

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章