【发布时间】:2017-04-18 16:15:23
【问题描述】:
我有一个旧的工作树,现在已经有几十个提交了。尽管如此,这个存储仍然代表了我需要提出的功能的有用工作。我之前放弃了它,因为我不得不切换到更高优先级的功能,因为我隐藏了前者。现在,与往常一样,我的master 显然代表了当前最先进的技术,但我需要着手处理旧功能。我认为我根本不需要或不需要变基。事实上,在功能完成之前,我不会提交(除了存储)。
由于存储是提交,我想我会看看我是否可以生成一个工作树,将上述废弃的功能工作和当前的主分支结合起来。我做到了:
git checkout stash@{0}
git merge --no-ff --no-commit master
git merge 的长选项只是为了确保我有机会查看合并。令人惊讶的是,一切都很顺利。查看一个文件的两个版本,其中更改最多,很明显我不希望 Git 进行合并。
现在,我想要让 Git 生成当我遇到合并冲突时我得到的那种文件——一个带有 <<<<< 和 >>>>> 的文件给我不同的部分。我会将这些文件编辑成合理的状态,然后从那里拿走,没问题。
或者我正准备使用git format-patch 和git merge-file(我不确定,因为我从未使用过)给我一个补丁文件,我很可能会在stash@{0} 之上进行调整和应用.
即使在 Git 看不到合并冲突的情况下,如所描述的那样“引发”合并冲突的惯用方式是什么?
【问题讨论】:
-
你可能无法欺骗合并算法来声明文件冲突,但你可能会让 git 进入
mergetool将显示各种版本的状态,就好像它们没有被合并一样。 -
我投票结束我自己的问题,因为它可能有太多正确答案或没有,因为它在技术上可能含糊不清,我现在什至不确定我需要解决哪个问题。跨度>