2012-03-28 20 views
0

我創建了一個基於我的遠程「origin/master」的分支,並且我將這個新分支作爲「origin/tester」推送到遠程(並且更新了我的本地分支以合併新的遠程而不是origin/master)。如何在不嘗試包含已在我的分支中的更改的情況下定期更新來自上游分支父級的更改?

後的主了,我需要一些提交(新的「testfile」文件加入),我跑(我的本地測試儀分公司簽出):

git fetch origin 
git rebase origin/master 
git push origin tester 

,一切都很好。預期的更改包含在我的本地分支中,並且乾淨地推送到遠程原點/測試分支。然後,兩個分支都進行了更多更改(單獨文件中的非衝突更改)。所以,我這樣做:

git fetch origin 
git rebase origin/master 

和我得到一個衝突,說這兩個都添加了「testfile」。這讓我認爲,當它進行了rebase時,它包含了所有起源/測試者從起源/主分離後所做的所有更改,而不是完成自我上次從起源/主設備重新生成以來所做的所有更改。我對嗎?我如何更新我的分支來讓它做「正確」的事情?

+0

就我描述的工作流程而言,沒有任何問題,儘管[亞當提及](http://stackoverflow.com/a/9913900/456814),但它不可能推動到'origin/tester'而不指定強制推送,除非'origin/tester'不包含任何'origin/master'沒有的提交。如果添加關於日誌歷史記錄的信息(使用'--graph --oneline'會很好),我們可能會進一步提供幫助。如果需要,您可以從消息中刪除敏感信息。 – 2013-07-13 22:43:17

回答

0

在您初次重新綁定之後,推送功能無法工作。你會需要強制選項(-f或--force)。

基於您提供的步驟中的這種不準確性,看起來您似乎最終重新定義了工作。