2014-09-19 91 views
0

這些問題的大部分回答「使用rebase」:)所以這裏是一個具體的例子,所以常見的情況可以更好地解釋。發送一個乾淨的拉請求,刪除古承諾

這是我經常遇到的情況(使用字母而不是提交ID)。

upstream/master: 
A - B - C - D - E 

origin/master: 
A - Y - merge B - merge E 

origin/feature 
A - Y - merge B - merge E - M 

現在我想提交原產/功能工作時,M上所做的更改。但是我仍然沒有準備好對主人做出的改變,之後我分叉了這個功能。

這些更改很容易合併,因爲Y和M會觸摸非常不同的文件。

回答

1

假設你被檢查出產地/功能,並希望得到公正的承諾已經準備好推到上游

git rebase --onto upstream/master HEAD~1 
0

你也可以這樣做:

原產/功能:

$ git format-path -1

這將生成一個只有M提交的路徑。

$git checkout upstream/master

$git am 0001-....

和你做。你所做的全部工作就是對你在M中所做的改變進行修改,並將其應用於上游/主站。 注:這或多或少類似Andrew C的答案,但不會讓你陷入任何未知的麻煩。 Git rebase是強大的..但棘手!

Happy Gitting!