Branch
Tips
- Branch : 指向特定 commit 的指標,代表專案中獨立的開發流程
- HEAD: 指向目前的分支
- main (master): 新專案建立時的預設分支,通常用於主版本
- branch-name 可使用斜線做分類識別,例如 test/feature1, dev/feature1
- 檢視目前 branch (HEAD) 的版本:
git branch
或git log -1
- 不同 branch,專案目錄裡的檔案以及 commit 紀錄也都不同
Git branch
# List all the branches
git branch
git branch -a
# Create new branch
git branch <branch-name>
git checkout <branch-name>
# Alternatively, using the following one-liner command
# <origin-name> 為空白時,預設為目前 HEAD 版本, 例如 origin/main
git checkout -b <branch-name> <origin-name>
# Remove a branch
# NOTE: 如果 branch 有內容異動, 移除時系統會有錯誤提示
git branch -d <branch-name>
建立分支
# Clone 專案
git clone http://your.company.com/yourname/my_proj.git
cd my_proj
# 建立一個來源是 origin/main 的分支版,名稱為 test/util-cmd,並且切換(checkout)至分支版
git checkout -b test/util-cmd origin/main
git branch -a
# Change your codes
# 更新至本地專案庫
git add .
git commit -m "Added a new branch test/util-cmd"
# 上傳至遠端專案庫
git push --set-upstream origin test/util-cmd
Git merge
在一般的開發流程,建立新分支來開發新功能或修復 bug,在分支完成開發後,最後會將分支的內容合併到主分支 (main/master)。
分支 fix_something 合併指令
git checkout main
git merge fix_something
合併後如果系統顯示 Merge conflict,必須依照訊息內容,找出檔案裡衝突的內容,進行手動修正,完成後,執行 git add 與 git commit 。
檢視合併的紀錄
git log --graph --oneline