我想讓主題分支與其父分支保持同步。這與使用變基到父分支的本地特性分支奇妙的作品:如何與遠程分支的父分支保持同步
git checkout topic
git rebase master
但是,如果話題是遠程分支則似乎墊底掌握與檢查到遠程分支產生衝突。
什麼是最好的方式來跟上在遠程分支主人的變化。
這是我一直在做的。當將遠程分支重新定位爲主人時,我似乎總是會遇到多重衝突和多個「分支」。
git checkout master
git checkout -b topic
git push origin topic
git branch --set-upstream topic origin/topic
我繼續在專題的工作,使提交,推到原點:
我與遠程分支機構工作時,使用標準的結構。
# edit some files
git commit -a
git push
在某些時候,master已更新,我需要將這些更改合併到我的主題分支中。
git checkout master
git pull
git checkout topic
git rebase master
太好了。現在推送該更新。
$ git push
To [email protected]:duane/branchtest.git
! [rejected] topic -> topic (non-fast-forward)
error: failed to push some refs to '[email protected]:duane/branchtest.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
奇怪的是,日誌看起來是這樣的:
$ git log --graph --format=oneline
* 31f4b133a4a9983528ba309e6c161e09e8061f84 Change 1 for topic 2.
* 2dc45b91856748a9c6adaf3579a7b8b2cf90a6ae Change 3 for file1.
* db97959ec75267bf94d97af6e8b2a8a762c61b25 Add topic2.txt.
* 08e6cc4b14a23dad86c2d283ee4acc1cebc775ef Change 2 for file1.
* e707b9571b2aa4d01073f156abb407fec15a195a Change 1 for file1.
* 2002670efda4d8c83150a4cc1c25fac62e37814d Add file1.txt.
* d3a6eae43e4824f455872622491c2ca861f96d4f Begin the repo.
$ git pull
Merge made by recursive.
而且事後看起來像
$ git log --graph --format=oneline
* 18ba5265e2836e1a7884341dbedb8b2cc8ab9727 Merge branch 'topic' of github.com:duane/branchtest into topic
|\
| * 0e5f3022c7f087ed4dd70d11a0cba250300be05e Change 1 for topic 2.
* | 31f4b133a4a9983528ba309e6c161e09e8061f84 Change 1 for topic 2.
* | 2dc45b91856748a9c6adaf3579a7b8b2cf90a6ae Change 3 for file1.
|/
* db97959ec75267bf94d97af6e8b2a8a762c61b25 Add topic2.txt.
* 08e6cc4b14a23dad86c2d283ee4acc1cebc775ef Change 2 for file1.
* e707b9571b2aa4d01073f156abb407fec15a195a Change 1 for file1.
* 2002670efda4d8c83150a4cc1c25fac62e37814d Add file1.txt.
* d3a6eae43e4824f455872622491c2ca861f96d4f Begin the repo.
更改爲1 2的主題是,我所做的更改。現在列出兩次。
當然,我的遠程主題分支上的混亂一團糟。
更大的問題是,每次發生重新分配給主設備時都會重複這個額外的合併點;即使主人沒有變化!
我哪裏錯了?如何在保持遠程分支的同時與主分支保持同步?
強行推送不會很好。所以,對於本地分支來說,rebase是很好的,但對於遠程分支,合併更好(需要ney)。之後當主題分支合併爲主時,會不會出現合併問題? –
回答我自己的問題...... git記錄合併的來源。當主題分支合併回主分支時,沒有(最小?)衝突。特別是,從主人到主題的合併都不會顯示爲衝突。 –