如何合并已被还原的提交?

4
我最近遇到这样一种情况,在将一个特性分支的更改合并到我的主分支和生产分支后,我需要从我的生产分支中删除这些更改,所以我使用了git revert。现在我需要将这些更改合并回生产分支,但如果我执行git merge sha1,就会收到消息“Already up-to-date”。有谁可以帮助我解决这个问题吗?
更新 所以我最终在我的生产分支上创建了一个分支,应用了我在那个分支中撤销的文件的差异,然后将该更改合并到了生产分支。我不喜欢这种方法,但它有效。如果能有一种使用相同sha1的方法,我仍然很感兴趣。

你尝试过使用 git cherry-pick 吗? - Todd A. Jacobs
刚试了一下,挑选也不起作用。 - aquil.abdullah
cherry-pick 对我来说似乎有效。稍微手动一点的等价方法是 git format-patch $SHA1 -> 写入 0001-description.patch。然后跟着 git am 0001-description.patch,或者 git apply ... 然后提交,甚至在仓库的顶层使用 patch -p1 ... - sourcejedi
1个回答

0
我现在需要将这些更改合并回生产分支。
如果在production分支上执行git revert,它会创建一个新的提交来取消您想要删除的提交。
由于该新提交已经在该分支('production')上,因此您无法将其合并。
如果您的意思是“合并回feature分支”,那么您可以在feature分支上应用该新提交的合并,从而也删除了feature分支中的更改。

你好VonC,我需要将我的主分支中的提交合并到生产分支中,但由于我已经将功能分支合并到了生产和主分支中。问题在于,我认为提交在主分支和生产分支中都存在,但是生产分支有一个更新的“还原提交”,因此我的更改未被应用。有什么想法吗? - aquil.abdullah
@akiladila “我的更改”?哪些更改?它们都在masterprod中,因此将master合并到prod(即使prod没有一个额外的提交与还原)始终会产生“已经是最新”的消息。不过,将prod合并到master应该可以正常工作。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接