(7) Git 練功坊-分支合併與刪除
分支合併 merge
如上圖,當我們在新的分支(feature)做開發,同事也確認分支的內容沒問題,就可以準備將分支合併到上線版本的master上。
首先用 git chcekout master,將HEAD 切回 master分支上,輸入 git merge 分支名稱,將分支合併到master上。
1 | git merge 分支名稱 |
此時就完成合併了。
分支合併 rebase
除了使用merge合併外,也可用 rebase 合併
目前有 cat、dog 以及 master 這三個分支,並且切換至 cat 分支上。這時候如果下這個指令:git rebase dog
這個指令翻成白話文,大概就是「我,就是 cat 分支,我現在要重新定義我的參考基準,並且將使用 dog 分支當做我新的參考基準」的意思。
完成之後,cat 分支將會接到 dog 分支上,像這樣:
「我先拿 c68537 這個 Commit 接到 053fb2 這個 Commit 上」,因為 c68537 原本的上一層 Commit 是 e12d8e,現在要接到 053fb2 上,所以需要重新計算這個 Commit 的 SHA-1 值,重新做出一顆新的 Commit 物件 35bc96。
「我再拿 b174a5 這個 Commit 接到剛剛那個新做出來的 Commit 物件 35bc96 上」,同理,因為 b174a5 這顆 Commit 要接到新的 Commit 的原因,所以它也會重新計算 SHA-1 值,得到一個新的 Commit 物件 28a76d。
最後,原本的 cat 是指向 b174a5 這個 Commit,現在要改指向最後做出來的那顆新的 Commit 物件 28a76d。
HEAD 還是繼續指向 cat 分支。
rebase 衝突
當rebase發生衝突時,要先手動解決衝突,如上圖選擇要保留的檔案。
處理完衝突後,輸入:
1 | git add . //加入索引 |
刪除分支
既然feature分支的內容已經順利地合併到master分支了,現在我們可以將其刪除。
欲刪除分支,請執行branch -d 命令。
1 | git branch -d <分支名稱> |
執行 git branch -d feature
就可以將 feature 分支刪除囉。
feature分支被刪除了,可以用”git branch”命令來確認分支是否已被刪除。
1 | $ git branch |