注:轉載請標明原文出處鏈接:https://xiongyiming.blog.csdn.net/article/details/106126916
1 創建分支與查看分支
創建分支命令格式:git branch 分支名
查看分支命令格式:git branch -v
也可以通過命令:git log --decorate --all --oneline --graph
對各個分支進行圖形化顯示。
假設目前工作區和倉庫有 d123.txt
, d456.txt
, hello_world.cpp
, README.md
四個文件,現在需要建立分支 feature_sum , 然後查看該分支。
創建分支,使用命令:git branch feature_sum
,然後通過命令:git branch -v
查看該分支,也可以通過命令:git log --decorate --all --oneline --graph
圖形化顯示分支,結果如下圖所示:
2 切換分支
切換分支命令格式:git checkout 分支名
例如,前面的例子已經創建了 feature_sum 分支,接下來切換到該分支(命令: git checkout feature_sum
),結果圖下圖所示,發現指針HEAD指向了分支 feature_sum 。
然後在 feature_sum 分支下添加 test_sum.cpp
文件並提交到倉庫,結果如下圖所示:
3 合併分支
假設需要將其他分支合併到master分支上,則合併分支前,首先切換到master分支上,然後將其他分支合併到master分支上即可。
合併分支命令格式:git merge 分支名
例如:
由前面的操作可知,當前分支 feature_sum 下增加了 test_sum.cpp
文件,可以通過切換分支查看master分支下的文件是否發生變化。
由上圖可知,master分支下並未增加 test_sum.cpp
文件,這時通過合併分支操作就可以增加feature_sum分支下的 test_sum.cpp
文件。
注意: 若將 feature_sum 分支合併到master分支,此時當前分支狀態需要在master分支下。
使用合併分支命令:git merge feature_sum
,結果如下圖所示,可以發現master分支下增加了test_sum.cpp
文件,表示合併分支操作成功。
4 解決合併分支產生的衝突
合併分支的時候可能會產生衝突,下面舉一個例子進行說明:
上一個操作合併分支,則master分支下的文件和feature_sum分支下的文件相同。假設用戶A對master分支下 test_sum.cpp
文件進行修改然後提交到倉庫,用戶B對feature_sum分支test_sum.cpp
文件進行修改然後提交到倉庫。用戶A和用戶B對同一個文件進行修改,那麼修改的文件內容在合併時會產生衝突,系統不知道該如何操作,則會出現報錯,此時就需要人工修改文件來解決衝突。
下面通過實際操作來說明解決衝突。
(1) master分支下修改 test_sum.cpp
文件,然後提交到倉庫,結果如下圖所示:
(2) feature_sum分支下修改test_sum.cpp
文件,然後提交到倉庫
(3) 合併分支(feature_sum分支合併到master分支)
如上圖所示,合併分支時出現衝突,提示 test_sum.cpp
文件出現衝突,並且此時還處於合併狀態,這是需要解決衝突,通過命令: vim test_sum.cpp
打開該文件查看衝突,如下圖所示:
將 test_sum.cpp
文件中 <<<<<<< HEAD
提示符 、======
分隔符和 >>>>>> feature_sum
提示符 刪除,然後修改內容,如下圖所示:
接着,修改文件後保存退出 ——> 解決衝突後的文件提交到暫存區 ——> 解決衝突後的文件提交到倉庫,結果如下圖所示:
由上圖可以看出,合併時出現衝突時,系統處於合併狀態,此時需要查看衝突文件,然後修改衝突,將文件提交到暫存區,然後提交到倉庫即可完成合並。
下面對解決合併衝突進行總結:
解決衝突的步驟(當前一直處於合併狀態):
- 第一步:編輯文件,刪除/修改衝突部分,保存退出;
- 第二步:重新提交文件至暫存區:
git add 文件名
- 第三步:重新提交文件至倉庫:
git commit -m “提交描述”
注意: 此時commit後不能帶具體的文件名,因爲當前一直處在合併狀態,默認提交的是當前衝突的文件。
5 刪除分支
合併分支結束後,可以刪除分支,刪除分支命令格式:git branch -d 分支名
。
如下圖所示,使用命令:git branch -d feature_sum
刪除 feature_sum 分支,結果如下圖所示:
6 小結
分支管理中常用的命令如下:
- 創建分支命令格式:
git branch 分支名
- 查看分支命令格式:
git branch -v
- 切換分支命令格式:
git checkout 分支名
- 合併分支命令格式:
git merge 分支名
注: 需要注意當前所在分支 - 刪除分支命令格式:
git branch -d 分支名
參考資料
[1] https://www.bilibili.com/video/BV1bs411N7ny?p=7
[2] https://www.bilibili.com/video/BV1pW411A7a5?p=24