在上一篇文章中有提到如何「創建分支」以及「切換分支」的方法,以下圖當範例來解釋:下圖的情況是 master
版本比較舊,commit 的檔案位置是在 v3,而 func1
的版本比較新,commit 的檔案位置在 v4。
倘若我們也想讓 master
擁有 v4
的 commit 的話,接下來就應該將兩個分支合併,這樣 master
跟 func1
所擁有的 commit 就會相同了。
而合併的指令也很簡單,只要先將 head 移動到較舊的分支上,再使用以下指令就可以進行合併了(注意:以下指令中的 <branch_name>
指的是較新版本的分支)
git merge <branch_name>
接下來,就讓我們實際操作看看吧!
首先,先使用 git log
查詢一下目前的狀況:
可以看到 func1
這條分支的 commit 位置是在 replace(*, +)
,而 master
這條分支則是在 Create README.md
的這個 commit 上,由此可以看出 master
所在的位置是比較舊的 commit,因此,接下來我們要將 func1
跟 master
合併。
因為 master
的 commit 是比較舊的,所以我們要先將 head 移動到 master
上。
git checkout master
接下來再使用以下指令將 func1
合併到 master
上。
git merge func1
這樣就成功將 func1
和 master
上的 commit 合併拉!
在本次的解說中,我們可以更清楚 git status
跟 git log
的差異,在建立跟合併分支的過程中我們經常使用 git log
這個指令來查看狀態,這是因為 git log
是負責管理本地數據庫的,而 git status
則是負責管理本地檔案和索引區的。