1. 程式人生 > >Git--分支管理

Git--分支管理

分支管理


主分支

最開始,專案只有一條分支叫主分支,即master分支,HEAD嚴格來說不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是當前分支。


基本指令

  • git branch:檢視分支
  • git branch <name>:建立分支
  • git checkout <name>:切換分支
  • git checkout -b <name>:建立+切換分支
  • git merge <name>:合併某分支到當前分支
  • git branch -d <name>:刪除分支

解決衝突

在dev分支開發並且提交檔案後,轉向主分支開發。主分支提交一次檔案後,想要將dev分支融合到主分支,這個時候master分支和dev分支的檔案極有可能產生衝突,主分支執行 git merge dev 命令後,會提示:

自動合併 file1
衝突(內容):合併衝突於 file1
自動合併失敗,修正衝突然後提交修正的結果。

這個時候就需要手動合併衝突檔案,此時檢視衝突檔案可以發現衝突內容加了識別符號分隔開:

<<<<<<< HEAD 
======= 
>>>>>>> feature1

衝突合併後,git add file ,git commit 提交即可。

git log --graph --pretty=oneline --abbrev-commit

管理策略

分支融合時,Git預設會使用 Fast forward 模式。

[email protected]:/home/xinje/Project/test# git merge dev
更新 81cda97..01ddbd8
Fast-forward
 file1 | 1 +
 1 file changed, 1 insertion(+)
Fast forward 這種模式下,刪除分支後,會丟掉分支資訊。如果 禁用Fast forward模式
,Git就會在merge時生成一個新的commit,這樣分支歷史上就會保留分支資訊。
[email protected]:/home/xinje/Project/test# git merge --no-ff -m "merge with no-ff" dev
Merge made by the 'recursive' strategy.
 file1 | 1 +
 1 file changed, 1 insertion(+)

在這裡插入圖片描述


參考網址: https://www.liaoxuefeng.com/