2014-09-19 88 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!