Git合併分支或者衝突

2022-04-05 06:12:45 字數 1520 閱讀 1809

假設衝突檔案是 test/testcase.php

總結,大部分情況下,都推薦使用第5種,使用分支的方法,來管理檔案修改衝突。

大致步驟:

1、在a分支,複製a到b分支(伺服器已經存在) git checkout -b b

2、同步**git pull -r origin b

3、解決衝突

4、提交** git add .

git commit -m '合併a分支'

5、本地與服務**關聯

git branch --set-upstream-to origin/b b

6、在b分支,合併a分支,git merge a

如何從乙個分支合併特定的commits到另乙個分支。有時候你需要這樣做,只合併你需要的那些commits,不需要的commits就不合併進去了。

a、

合併某個分支上的單個commit

首先,用git log或gitx工具檢視一下你想選擇哪些commits進行合併,例如:

dd2e86 - 946992 -9143a9 - a6fd86 - 5a6057 [master]

76cada - 62ecb3 - b886a0 [feature]

比如,feature 分支上的commit 62ecb3 非常重要,它含有乙個bug的修改,或其他人想訪問的內容。無論什麼原因,你現在只需要將62ecb3 合併到master,而不合併feature上的其他commits,所以我們用git cherry-pick命令來做:

git checkout master

git cherry-pick 62ecb3

這樣就好啦。現在62ecb3 就被合併到master分支,並在master中新增了commit(作為乙個新的commit)。cherry-pick 和merge比較類似,如果git不能合併**改動(比如遇到合併衝突),git需要你自己來解決衝突並手動新增commit。

b、合併某個分支上的一系列commits

在一些特性情況下,合併單個commit並不夠,你需要合併一系列相連的commits。這種情況下就不要選擇cherry-pick了,rebase 更適合。還以上例為例,假設你需要合併feature分支的commit76cada ~62ecb3 到master分支。

首先需要基於feature建立乙個新的分支,並指明新分支的最後乙個commit:

git checkout -b newbranch 62ecb3

然後,rebase這個新分支的commit到master(--ontomaster)。76cada^ 指明你想從哪個特定的commit開始。

git rebase --onto master 76cada^
得到的結果就是feature分支的commit 76cada ~62ecb3 都被合併到了master分支。

git 分支合併 分支衝突

分支合併的不同使用場景 合併指定分支到當前分支 git merge 當多分枝協作時,往往會產生一些衝突 你的本地有兩個分支master dev,指向同乙個版本,起始時狀態相同,且只有乙個readme.txt檔案。你在master上新增一段hello master,且add git commit 然後...

git 分支合併衝突處理(conflict)

基於同個原始分支後,兩個分支同步開發,最後合併 合併兩個分支 branch1 2可以是分支名,也可以通過指定版本的sha1 16進製制的前7個位 git merge branch1 branch2 解決衝突通過git diff來比較兩個分支的不同點,手動合併 比較兩個分支 預設比較所有的不同 git...

git分支合併,及衝突處理

寫的有點亂,只是做了乙個總結 方法一 git checkout b test 方法二 git branch test git checkout testgit branchgit push origin testgit branch d testgit push origin test顯示結果為 m...