Git 筆記 03 - Git 分支
tags: git
進行多人開發時,為了防止互相干擾,提高合作開發的體驗,建議每個開發者都基於分支進行專案功能的開發。
Master (Main) 主分支
在初始化本地 Git 儲存庫時,Git 會預設幫我們創建一個名字叫做 master (main) 的分支。通常我們把這個分支稱為主分支。
實際工作中,master 主分支的作用是:用來保存和記錄整個專案已完成的功能程式碼。 因此,不允許工程師直接在 master 分支上修改程式碼,因為這樣做的風險太高,容易導致整個專案崩潰。
功能分支
由於工程師不能直接在 master 分支上進行功能的開發,所以就有了功能分支的概念。
功能分支指的是專門用來開發新功能的分支,它是臨時從 master 主分支上分叉出來的,當新功能開發且測試完畢後,最終需要合併到 master 主分支上,如上面的範例圖。查看分支列表
使用如下指令,可以查看當前 Git 儲存庫中所有的分支列表:
sh
git branch
注意:分支名字前面的 * 表示當前所處的分支
建立新分支
使用如下指令,可以基於基於當前分支,建立一個新的分支,此時新分支上的程式碼與當前分支完全一樣:
sh
git branch 分支名稱
實際操作範例:
切換分支
使用如下指令,可以切換到指定分支上進行開發:
sh
git checkout 分支名稱
實際操作範例:
分支的快速建立和切換
使用如下指令,可以建立指定名稱的新分支並立即切換到新分支上:
sh
# -b 表示建立一個新分支
# checkout 表示切換到剛才新建的分支上
git checkout -b 分支名稱
它其實是
git branch 分支名稱
和git checkout 分支名稱
兩道指令的縮寫
實際操作範例:
合併分支
功能分支的程式碼開發測試完畢之後,可以使用如下指令,將完成後的程式碼合併到 master 主分支上:
sh
# 1. 先切換到 master 主分支上
git checkout master
# 2. 在 master 主分支上運行 git merge 指令,將 login 分支的程式碼合併到 master 上
git merge login
實際操作範例:
WARNING
合併分支的注意點: 假設要將 C 分支的程式碼合併到 A 分支,需要先切換到 A 分支上,再執行 git merge 指令來合併 C 分支
刪除分支
當把功能分支的程式碼合併到 master 主分支上後,就可以使用如下指令,刪除對應的功能分支:
sh
git branch -d 分支名稱
實際操作範例:
遇到衝突時的分支合併
如果在兩個不同的分支中,對同一支檔案進行了不同的修改,Git 就沒法乾淨的合併它們。 此時我們需要打開這些包含衝突的檔案然後手動解決衝突
sh
# 假設:在 reg 分支合併到 master 分支期間,程式碼發生了衝突
git checkout master
git merge reg
# 打開包含衝突的檔案,手動解除衝突後,再執行如下指令
git add .
git commit -m "解決了分支合併衝突問題"
實際操作範例:
- 合併 reg 後出現下圖情境
- 此時再打開 vscode 到 index.html 檔案時,會看到如下顯示
- 根據需要解決衝突問題