您如何合并已恢复的提交?
Posted
技术标签:
【中文标题】您如何合并已恢复的提交?【英文标题】:How do you merge a commit that has been reverted? 【发布时间】:2012-10-26 14:28:00 【问题描述】:我最近遇到了一种情况,我将功能分支中的更改合并到我的主分支和生产分支中。然后我需要从我的生产分支中删除更改,所以我使用了 git revert。我现在需要将这些更改合并回生产分支,但如果我执行 git merge sha1 我会收到以下消息:
Already up-to-date
谁能帮我解决这个问题?
更新 所以我最终从我的生产分支创建了一个分支,应用了我在该分支中恢复的文件的差异,然后将该更改合并到生产中。我不喜欢它,但它奏效了。如果有办法使用相同的 sha1,我仍然很想知道。
【问题讨论】:
你试过git cherry-pick
吗?
刚试了下,cherry-pick也没用。
cherry-pick 似乎对我有用。 git format-patch $SHA1
-> writes 0001-description.patch 是一个稍微手动的等价物。然后是git am 0001-description.patch
,或者git apply ...
,然后提交,甚至patch -p1 ...
(在repo的顶层)。
【参考方案1】:
我现在需要将这些更改合并回生产分支
git revert
,如果在 production
分支上完成,将创建一个新的提交,取消您要删除的提交。
由于新的提交已经在那个分支上('production
'),你不能合并它。
如果您的意思是“合并回 feature
分支”,那么合并时您将在 feature
分支上应用该新提交,同时从 feature
分支中删除更改。
【讨论】:
你好 VonC,我实际上需要将我的主分支中的提交合并到我的生产分支中,但是因为我已经将功能分支合并到了生产和主分支中。我认为问题在于提交在主服务器和生产环境中,但生产环境具有更新的“还原提交”,因此我的更改没有应用。有什么想法吗? @akiladila“我的改变”?哪些变化?它们都在master
和prod
中,因此将master
合并到prod
(即使prod
没有一个额外的revert 提交)将始终产生Already up-to-date
消息。不过,将 prod
合并到 master
应该可以正常工作。以上是关于您如何合并已恢复的提交?的主要内容,如果未能解决你的问题,请参考以下文章