Git解決分支衝突及分支管理策略

2021-07-14 11:34:12 字數 1857 閱讀 1861

解決分支衝突

通常當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一下就可以了。

git 分支管理和衝突解決

git branch 分支名 在當前分支上 建立 分支 git branch ben dev 斜槓 建立乙個分層的命名 git checkout 切換到 分支 git checkout b 建立 並切換 到 分支 等價於 git branch git checkout 兩條指令 git branch...

Git 分支管理和衝突解決

git branch 沒有引數,顯示本地版本庫中所有的本地分支名稱。當前檢出分支的前面會有星號。git branch newname 在當前檢出分支上新建分支,名叫newname。git checkout newname 檢出分支,即切換到名叫newname的分支。git checkout b ne...

git分支合併及衝突解決

小明在愉快的敲 vim ok 他在ok裡敲了simachanping git commit am commit first version by xiaoming 然後這時他接到了產品的 說有乙個新需求要做名字是iss53,小明就打算新建乙個iss53分支來實現需求 git checkout b i...