2014-07-25 40 views
1

我知道有很多問題與「非快進分支推送」有關。我已經看到他們的我發現,我認爲這是最好的答案,因爲我不希望力推(this one推送非快進分支後修復

我的問題是,合併之前,我有:

* afd733f (HEAD, feat/fix_branch) comment32154 
* 424ab31 comment6543 
| * d73a555 (origin/feat/fix_branch) comment6543 
|/  
* d7f3fad (origin/branch, branch) comment6541 

現在,我是怎麼得到這樣的東西的?我不知道......

但是我已經做了在answer mentioned before的步驟,現在是這樣的:

* 4cd3543 (HEAD, origin/feat/fix_branch, feat/fix_branch) Merge branch 'feat/fix_branch' 
|\ 
| * d73a555 (origin/feat/fix_branch) comment6543 
* | afd733f (HEAD, feat/fix_branch) comment32154 
* | 424ab31 comment6543 
|/  
* d7f3fad (origin/branch, branch) comment6541 

我只是想解決這個問題,而不必一種循環。我只想要一條線。是否有可能回去,並有類似的東西:

* 4cd3543 (HEAD, origin/feat/fix_branch, feat/fix_branch) Merge branch 'feat/fix_branch' 
| 
* afd733f comment32154 
* 424ab31 comment6543 
|  
* d7f3fad (origin/branch, branch) comment6541 

回答

1

當然,如果這是您的本地副本,但您已將推送您的分支自做出更改後回到原點。這使事情變得複雜。

如果,當你第一次得到你的循環,你會發現它和剛剛做

$ git reset --hard HEAD^ # discard the merge commit you don't like 
$ git rebase origin/feat/fix_branch 

你有你想要的結果。

現在,你仍然可以這樣做,但是你必須強制將它推回原點,如果其他人拉你的合併提交,這是一個問題。

請注意,您鏈接的問題根本無法解決這個問題 - 它描述瞭如何避免導致問題出現在OP位於錯誤分支的第一位。


一般來說,我不打擾修復這個「循環」 - 沒有什麼可怕的事情在歷史中看到合併提交。

但是,如果您想在將來避免它,只需使用git pull --rebase。您甚至可以將其配置爲默認值。

+0

我無法測試您的答案,因爲我已經完成了推力,現在看起來像我想要的那樣。如果我做一個rebase發生了什麼? – sop