**解決分支沖突**
? ? ? 通常當Git無法自動合并分支時,就必須首先解決沖突后,再提交。
下面咱們先創建一個分支并切換到b1分支:

修改咱們之前的hellogit.txt內容,添加一行:Create a new named f1 branch?

查看該文件的狀態,并提交至本地倉庫:

然后切換至master分支:

然后在master分支上把hellogit.txt文件的最后一行改為:switch to master.
最后在master分支上提交:

現在,master分支和b1分支各自都有自己新的提交,這種情況下,Git無法執行想上一章一樣進行“快速合并”,只能試圖把各自的修改合并起來,但這種合并就可能會有沖突。

Git告訴我們,hellogit.txt文件存在沖突,必須手動解決沖突后再提交,通過git status可以告訴我們沖突詳情:

可以看到hellogit.txt在兩個分支上都沒修改且這兩個分支沒有merge,下面來看看helligit.txt的內容:

Git用<<<<<<<,=======,>>>>>>>標記出不同分支的內容,我們修改如下后保存:Create a new named f1 branch;再提交:

好了沖突已經解決并提交了,那么現在就可以刪除b1分支了:

小結:?當Git無法自動合并分支時,就必須首先解決沖突后,再提交。
**分支管理策略:**
現在我們仍然創建并切換至b1分支:

然后修改一下hellogit.txt的內容,再提交:

然后回到master主分支上:

這時,我們merge加上兩個參數:--no-ff參數(表示禁用“Fast forward”),-m(和comimt一樣,為merge新提交時的信息):
**使用--no-ff好處是**:能看出來哪些分支曾經做過合并。

合并后,我們用git log看看分支歷史:

**小結**:合并分支時,Git會默認使用“Fast forward”模式,但這種模式下,刪除分支后,會丟掉分支信息。
在實際工作中,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面進行開發,一般都是依賴(你和你的同事)各自的分支去進行新的feature開發或解決新的bug,有需要的時候再merge一下就可以了。