git實用知識梳理(二)分支管理

weixin_33806914發表於2019-02-27

續上篇git實用知識梳理(一)最基礎的知識
,這裡開始講講分支管理的故事。

分支管理策略

master分支是穩定的,僅僅用來發布新版本,而不是幹活用的。
dev分支是用來幹活的,是不穩定的版本。等需要釋出版本的時候,再把dev分支合併到master。
團隊中的每個人都建立自己的分支,然後常常往dev分支合併。

合併分支,加上-no-ff引數,是用普通模式合併,能看出來曾經做過合併。
fast forward合併則看不出來曾經做過合併。

建立、合併分支

在git裡,是使用指標來指向不同的分支,而HEAD則指向當前分支。所以合併兩個分支的時候,只要修改指標指向即可。建立分支是增加指標,刪除分支則是刪除指標。

git鼓勵用分支完成某個任務,合併後再刪掉分支。因為建立、合併、刪除分支都非常快,而且在分支上工作更安全。

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

通常,合併分支時,如果可能,Git會用“Fast forward”模式,但這種模式下,刪除分支後,會丟掉分支資訊。

如果要強制禁用“Fast forward”模式,可以使用--no-ff引數,表示禁用“Fast forward”。

解決衝突

存在衝突時,使用$ git status檢視衝突的檔案。
Git會用<<<<<<<,=======,>>>>>>>標記出不同分支的內容。我們檢視衝突部分,手工修改解決之後,再提交就可以了。

分支策略

master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活。

dev分支是不穩定的,需要版本釋出時,再把dev分支合併到master上,在master分支釋出對應版本。

團隊合作的時候,每個人都有自己的分支,然後把自己的分支經常的往dev分支合併。

團隊合作時需要善用git的分支功能。

bug分支:每個bug都可以通過一個新的臨時分支來修復,修復後,合併分支,然後將臨時分支刪除。

但是,如果需要修改bug的時候,當前正在dev上幹活,還沒有提交,怎麼辦?此時可以使用git stash把當前工作現場“儲藏”起來,等以後恢復現場後繼續工作。

git stash list命令看剛才的工作現場,恢復的話有兩種方式:

一是用git stash apply恢復,但是恢復後,stash內容並不刪除,你需要用git stash drop來刪除;

另一種方式是用git stash pop,恢復的同時把stash內容也刪了。

相關文章