Git 吉特:一无所有的奇怪冲突

Git 吉特:一无所有的奇怪冲突,git,merge,conflict,Git,Merge,Conflict,我创建了新的分支,并在一个文件中添加了几行。之后,我想将其合并到master,但git显示冲突: <<<<<<< destination:ad27cc8d6bb445757c38541eb57ea7d3cba944b3 ======= foo bar >>>>>>> source:385f662b3668c9173dd757e850ceba54cfd05560 >来源:385F662B36668C9173DD7

我创建了新的分支,并在一个文件中添加了几行。之后,我想将其合并到master,但git显示冲突:

<<<<<<< destination:ad27cc8d6bb445757c38541eb57ea7d3cba944b3
=======
foo
bar
>>>>>>> source:385f662b3668c9173dd757e850ceba54cfd05560
>来源:385F662B36668C9173DD757E850CEBA54CFD05560
如果我只加几行,我不明白为什么会有冲突。那么,怎么了

已解决:


我交换了几行的位置,Bitbucket并没有显示冲突。在Git Bash中合并后,我看到并解决了这一问题。

冲突似乎表明,在一个实例中,行是空的,但在另一个实例中,您添加了两行。发生了一些事情,所以从一个承诺到另一个承诺之间没有一条简单的界线

在不浏览git日志的情况下,很难准确说出这场冲突是如何发生的。要帮助您了解事情的分歧,您可以尝试以下两个命令之一:

git log --graph --oneline --decorate

git log --all
区别在于,第二个将显示提交,而第二个将显示与当前头无关的分支


我怀疑你在两个分支上都编辑了这个文件,可能没有意识到

我可以如下重现您的冲突:

$ git init
$ echo a >test
$ git add test
$ git commit -m msg
[master (root-commit) eac86cc] msg
 1 file changed, 1 insertion(+)
 create mode 100644 test
$ git checkout -b source
Switched to a new branch 'source'
$ printf 'foo\nbar\n' >test
$ git commit -am source
[source 9f22aa2] source
 1 file changed, 2 insertions(+), 1 deletion(-)
$ git checkout master
Switched to branch 'master'
$ >test
$ git commit -am destination
[master 45e3e19] destination
 1 file changed, 1 deletion(-)
$ git -c merge.conflictstyle=merge merge source
Auto-merging test
CONFLICT (content): Merge conflict in test
Automatic merge failed; fix conflicts and then commit the result.
$ cat test
<<<<<<< HEAD
=======
foo
bar
>>>>>>> source

没有更多的上下文就说不出来。考虑设置Git配置选项<代码>合并。冲突类型>代码> >代码> DIF3。EOL风格(CR vs CRLF)是否有差异?更多评论。
<<<<<<< HEAD
||||||| merged common ancestors
a
=======
foo
bar
>>>>>>> source