Skip to main content

Branch

為何要有分支

  • 方便多人協同合作開發
  • 不同分支之間彼此獨立,不互相影響
  • 不同分支開發不同功能,最後再合併

git-branch

建立及切換分支

  • 建立分支 git branch branchname
  • 切換分支 git checkout branchname
git branch new-branch //建立新分支
git checkout new-branch //切換到新分支
git branch //秀出所有分支
echo "123" >> new-branch.txt //在新分支建立檔案
git add .
git commit -m "added new-branch.txt"
git checkout main
echo "123" >> new-main.txt //在主分支建立檔案
git add .
git commit -m "added new-main.txt"

git-branch2

合併分支

  • 先checkout到主分支
  • 合併分支 git merge branchname
git checkout main //切換到主分支
git merge new-branch //在主分支合併子分支
//會跳出vi介面讓你輸入merge message
//在最下面輸入new-branch merge into main,存檔離開

git-branch3

衝突解決

  • 如果兩個分支同時修改到同一個檔案的同一個位置,在兩個分支進行合併時,就會產生衝突
git checkout -b test1 //創建並切換到新分支
vi README.md //修改README檔第一行的內容
git add .
git commit -m "edited README.md in test1 branch"
git checkout main //回到主分支
git checkout -b test2 //創建並切換到新分支
vi README.md //修改README檔第一行的內容
git add .
git commit -m "edited README.md in test2 branch"
git checkout main //回到主分支
git merge test1 //合併分支test1
git merge test2 //合併分支test2時,會出現merge conflict in README.md的錯誤訊息
vi README.md //進行衝突解決,選擇要留下的版本,:wq存檔離開
git add .
git commit -m "RESOLVED CONFLICT README.md"

git-branch4

刪除分支

  • 刪除本地分支 git branch -d branchname
  • 刪除遠端分支 git push origin :branchname
git checkout main //回到主分支
git push origin main //上傳主分支
git push origin new-branch //上傳分支
git push origin test1 //上傳分支
git push origin test2 //上傳分支
git branch -d new-branch //刪除本地端的分支
git push origin :new-branch //刪除Github端的分支