玩轉GIT之終結git flow中分支衝突系列問題

2021-08-18 15:03:27 字數 2331 閱讀 3572

第一種處理方法

開發要求:

不能丟棄本地修改,因為其中的某些內容的確是我們需要的,此時需要對unmerged的檔案進行手動修改,刪掉其中衝突的部分。

情景再現:

比如你在a分支上commit了,然後pr了,這時你的pr沒有衝突的提示,可以合併。但是之後有人在你pr的目標上的相同位置做了修改,這個時候,你的pr就有衝突的提示了,不可以合併,怎麼辦?

解決方法:

需要先獲取遠端最新的origin/master分支的上的commitid,然後存在本地mstaer分支上的乙個檔案內,然後再用git merge origin/master合併到本地的檔案上。然後會出現衝突,再在衝突的檔案內根據需求將一些內容刪除掉,然後執行git add && git commit && git push origin就不會再衝突了。

具體**如下:

// 切換到`brancha`分支

git checkout brancha // 獲取最新commitid

git fetch origin// 合併到本地檔案上

git merge origin/master// 對衝突內容進行修改後,執行

git add .

git commint -m 'finished'

git push origin master brancha

下面是官方的乙個例子,我寫了注釋

// 官方例子

// 第一步

git remote add upstream

// 第二步

git fetch upstream

// 輸出資訊

remote: counting objects: 3, done.

remote: compressing objects: 100% (3/3), done.

unpacking objects: 100% (3/3), done.

remote: total 3 (delta 0), reused 0 (delta 0)

from

* [new branch] master -> upstream/master

// 第三步

git merge upstream/master

// 輸出資訊

auto-merging blink.ino

conflict (content): merge conflict in blink.ino

automatic merge failed; fix conflicts and

then commit the result.

// 第四步

vim blink.ino

// 第五步

git add blink.ino

// 第六步

git commit

// 輸出資訊

[slow-blink 3c8d735] merge remote-tracking branch 'upstream/master' \

into slower-blink

// 第七步

git push origin slow-blink

// 輸出資訊

counting objects: 6, done.

delta compression using up to

8 threads.

compressing objects: 100% (6/6), done.

writing objects: 100% (6/6), 682 bytes | 0 bytes/s, done.

total 6 (delta 2), reused 0 (delta 0)

to ef4725c..3c8d735 slower-blink -> slow-blink

第二種解決方法

如果我們確定遠端的分支正好是我們需要的,而本地的分支上的修改比較陳舊或者不正確,那麼可以直接丟棄本地分支內容,執行如下命令(看需要決定是否需要執行git fetch取得遠端分支):

$:git

reset--

hard

origin/master

玩轉GIT之git flow中容易忘記的git命令

git reset hard head2 git remote add origin git github.com stormzhang test.git 將本地的已有專案關聯到github上的新的專案上,在github上新建乙個倉庫。增加乙個本地版本庫到現有的 git 專案 可以執行如下的命令 g...

Git分支模型(GitFlow)

merge no ff 使用 no ff合併時,在刪除develop分支之後,該分支的合併資訊仍然被保留,在以後的 分析中可以便捷的檢視到歷史資訊,而fast forward方式則無法辨識 的合併資訊 master分支的head節點始終處於 準備好進行生產的狀態 即master分支的head節點所指...

Git分支Git Flow開發規範

規範化管理 庫分支有助於版本庫在演進過程中始終保持簡潔,主幹結構清晰。各個分支各司其職,有利於後續的維護更新,避免版本發布帶來的混亂問題。a successful git branching model git官方文件 branching workflows 以下為git分支開發規範的簡單總結 ma...