1

假设我在 master 分支中有一个文件:

Hello World!

我创建了一个新分支 A 并将同一个文件修改为:

Hello World!
and a little more

然后我在主分支中修改同一个文件

Hello World, the bug is fixed!

有没有办法将两个分支合并为:

Hello World, the bug is fixed!
and a little more

无需解决冲突?

ps:对 git 来说是全新的,所以我可能会错过一些明显的东西——我使用 netbeans 作为 IDE 并使用内置的合并功能

4

2 回答 2

3

当两个更改修改代码的同一部分时,就会出现冲突。它无法在没有人工参与的情况下通过机器智能自动解决,因为机器无法准确知道文字合并是否有效。考虑以下示例:

基础版本:

char s[200];

第一个修改版本:

char s[100]; // reduce array size

第二个修改版本:

char s[200];
s[199] = 0;

如果合并工具按照您的建议执行,结果将是:

char s[100]; // reduce array size
s[199] = 0;

显然,结果是错误的。

所以不要指望机器可以为你解决冲突。我们程序员保证在可预见的将来拥有这个特权,:)

于 2012-09-28T20:35:09.577 回答
2

冲突源于模棱两可,有时是不可避免的。尝试使用像meld这样的工具来帮助快速解决合并冲突,并减少痛苦的体验。

我还建议您在尝试合并之前先从工作分支执行 rebase 以从 master 中提取更改。最好先在您的分支中本地解决冲突,这样您就可以进行简单的快进合并。

于 2012-09-28T16:40:44.783 回答