Git 避免合并冲突

Git 避免合并冲突,git,git-merge,Git,Git Merge,假设我在主分支中有一个文件: 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

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

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,并使用内置的合并功能

冲突产生于歧义,有时是不可避免的。尝试使用类似的工具来帮助快速解决合并冲突,并减少痛苦


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

冲突产生于歧义,有时不可避免。尝试使用类似的工具来帮助快速解决合并冲突,并减少痛苦


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

当两个更改修改代码的同一部分时,会发生冲突。没有人的参与,机器智能无法自动解决这个问题,因为机器无法准确地知道文字合并是否有效。考虑下面的例子:

基本版本:

char s[200];
第一次修改版本:

char s[100]; // reduce array size
char s[200];
s[199] = 0;
第二次修改版本:

char s[100]; // reduce array size
char s[200];
s[199] = 0;
如果合并工具按照您的建议执行,结果将是:

char s[100]; // reduce array size
s[199] = 0;
显然,结果是错误的


因此,不要期望机器能为您解决冲突。在可预见的将来,我们程序员保证拥有这一特权:

当两个更改修改代码的同一部分时,就会发生冲突。没有人的参与,机器智能无法自动解决这个问题,因为机器无法准确地知道文字合并是否有效。考虑下面的例子:

基本版本:

char s[200];
第一次修改版本:

char s[100]; // reduce array size
char s[200];
s[199] = 0;
第二次修改版本:

char s[100]; // reduce array size
char s[200];
s[199] = 0;
如果合并工具按照您的建议执行,结果将是:

char s[100]; // reduce array size
s[199] = 0;
显然,结果是错误的

因此,不要期望机器能为您解决冲突。我们程序员保证在可预见的未来拥有此特权:

可能重复的可能重复的