1

这是我的问题。例如,

 A---B---C topic
     /
D---E---F---G master

fileAon Ecommit(topic和master的共同祖先)的内容是:

abc def

fileAtopic分支上是:

abc def
abc

fileAmaster分支上是:

abc def
abc
gh  //added by master.

做“ ”时,会得到git checkout master; git merge topic一个新的:fileA

abc def
abc
gh

但我不希望这种情况发生,如果它在合并分支上的任何 2 个文件上出现差异,我希望 git 退出并向我抛出错误消息或类似的东西。

感谢 VonC 的编辑和回答。下次我会注意到问题格式:)。

但是,如果其他人更改了主题中的另一个文件,而自提交 E 以来在 master 中没有更改,我可以允许它合并到我的分支中。我之前可能没有表达清楚

为什么我需要这个? 因为如果我不知道其他人对同一文件进行了新更改,即使它们可以合并,
我只想确保我的补丁与我的原始版本相比会产生“我自己的”更改。fileA

4

2 回答 2

0

目前,我可以通过 git 输出识别 git 是否正在合并同一文件中的不同更改:自动合并............

我将使用“git merge --no-commit”来测试输出。那是我的解决方法..

于 2012-10-26T00:52:09.390 回答
0

如果我不知道其他人对同一文件进行了新更改,我只想确保我的补丁与我的原始文件 A 相比会产生“我自己的”更改,

这意味着 master 可以快速转发到 topic,因为 topic 会添加新的提交,而 master 不会:

您可以通过首先尝试以下方法来测试是否是这种情况:

git checkout topic git merge --ff-only master

然后您可以将主题合并到主控(简单合并)。

如果您只想测试:

    git checkout topic git merge --ff-only --no-commit master

无需解析输出:如果命令完成,则意味着合并将是快进的。
(根据OP Keith--no-commit建议

于 2012-10-25T11:46:28.127 回答