git - 恢复 git merge ,同时允许稍后进行相同的 merge )

标签 git merge

恢复已提交的 git merge 的最佳方法是什么,同时保留稍后 merge 同一分支的选项?

这是针对这样一种情况,当我将一个分支 merge 到 HEAD 中,然后决定我目前不想要这些更改,但仍然希望可以选择在以后的某个时候将它们 merge 到 HEAD 中.

git revert -m 1”将代码恢复到 merge 前的状态,但分支仍然以某种方式标记为“已 merge ”。因此,稍后与同一分支重复 merge 是行不通的。

这应该是一个非常普遍的问题(而 git 是一个进化的工具),但我找不到一个简单干净的解决方案(除了销毁 git 存储库并再次从远程 pull 它)。我错过了什么吗?

最佳答案

很抱歉,您浪费了您的 Twig 。

但是有一个解决方法。诀窍是暂时“重写” merge 提交,以便它忘记分支是父分支。假设 X 是 merge 提交:

git replace --graft X X^   # pretend that there is just one parent
git merge branch           # merge the branch again
git replace --delete X     # remove the replacement

关于git - 恢复 git merge ,同时允许稍后进行相同的 merge ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57904970/

相关文章:

sql - 将数据框与左侧或右侧的 Pandas 合并

linux - 如何使用 git-archive 获得 GNU tar 的 --strip-components 的效果?

python - 合并列表列表,使唯一值覆盖非唯一值?

java - 使用 Eclipse 解决冲突后的 RTC 合并问题

混帐克隆 : no address associated with name

git 工作流 : throwaway merges and git-rerere - what's the point?

PHP:在循环中合并数组

git - 在不下载对象的情况下获取引用

Git 子模块。 pull 入 super 项目的新克隆

git - git log 和 git show 的不同漂亮格式?