简而言之,为什么一个名为
foo.txt
的文件有以下内容a
b
无法与具有内容的 foo.txt
的分支合并:
a
c
更详细的版本是:为了尝试Git和合并,我做了以下操作:
mkdir
新建一个目录,并进入该目录,然后git init
- 创建一个文件
foo.txt
,并添加一行内容a
(第一次就这样写,第二次在a
后面加上两个空行) - 提交它,现在执行
git checkout -b feature
和git checkout -b sprint
命令(据我所知,连续执行命令与先切换回master
再创建sprint
的效果相同,因为分支是基于提交ID创建的,无论哪种情况,它们都完全相同) - 现在执行
git co feature
命令,并将文件修改为a
,然后是一个空行,接着是第三行的c
- 现在提交它,然后执行
git checkout sprint
命令,并将文件修改为a
,然后是下一行的独立字符b
- 现在提交它,然后执行
git merge feature
命令
理论上,合并应该成功,并包含以下内容
a
b
c
为什么会失败呢?不要猜测“可能是行太接近了”,能否从文档或参考资料中得到更明确的答案呢?
我还尝试在a
和b
之间以及b
和c
之间添加空行,使它们更加分散,但是没有在foo.txt
的第一个版本中添加初始空行,结果仍然是合并冲突。
b
和c
通过换行符分开得更远一些,它们就可以成功合并。 - nonopolarity