【发布时间】:2011-07-11 05:42:39
【问题描述】:
我正在尝试将本地分支合并到主分支,而无需 Git 进行自动合并。我想“手工挑选”我想合并到 master 中的内容。
当我使用 Git 的 difftool 命令时,我能够比较并选择我想要添加到主分支的内容。但是当我进行合并时,我会丢失我之前选择的内容,因为 Git 会进行自动合并。我可以在合并之前将更改提交到 master,但这样做似乎不自然。
而且 Git 的合并工具仅在合并发生冲突时可用。但是如果 Git 进行自动合并,那么通常不会有冲突,所以我无法运行 mergetool 命令。
更新:
我开始认为我想要完成的事情是不好的做法,或者这是不可能的。也就是说,合并一个主题分支,只让它合并我需要的差异。此外,要让这一点反映在历史中。无论如何,我在试验 Git 时提出的问题浮出水面。
【问题讨论】:
-
您“预先选择”的这些更改来自哪里?在您进行合并之前,它们是您工作树中的本地修改吗?您是否尝试合并一个分支并只保留其中的一些更改?
-
Jefromi,回答你的第一个问题,它们是从区分主题分支的变化。这是我在第二段第一句中提到的。回答您的第二个问题,是的,它们是本地修改。这就是为什么如果我进行合并(没有先提交)我会丢失那些差异。回答你的第三个问题,是的。我正在尝试合并一个分支,并通过使用差异工具(例如 KDiff3)选择我想要的内容,只保留其中的一些更改。
-
关于您的更新:如果您打算合并该分支的其余部分,这确实是一种不好的做法。记录合并后,表明您拥有合并提交的内容。不过,您当然可以做您开始做的事情 - 选择性地将几行差异应用到主题分支,然后直接提交(而不是作为合并)。如果您以后合并整个主题,那应该(希望)不会导致冲突。
-
请在此处接受答案。
标签: git