发送一个干净的拉取请求,删除古老的提交

时间:2014-09-19 00:23:44

标签: git github

大多数问题都是通过“使用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触摸非常不同的文件时,更改很容易合并。

2 个答案:

答案 0 :(得分:1)

假设你已经签出了原产地/功能,并希望得到提交M准备推送到上游

git rebase --onto upstream/master HEAD~1

答案 1 :(得分:0)

你也可以这样做:

在原点/功能上:

$ git format-path -1

这将生成仅M提交的路径。

$git checkout upstream/master

$git am 0001-....

你完成了。您所做的只是在M中进行更改并将其应用于上游/主控。 注意:这或多或少类似于Andrew C的答案,但不会让您陷入任何未知的麻烦。 Git rebase很强大......但很棘手!

快乐的Gitting!