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