Git 未检测到同一行代码中的冲突
Git does not detect a conflict in code on same line
我正在学习git我试过下面的例子:
在 master 分支中我创建了一个文件 1.txt 其中有一行 hi
然后我切换到一个新分支“mybranch”并将同一行编辑到 hello
而不是 hi
当我回到主分支和 运行 一个 git 合并命令 git merge mybranch
它没有检测到这是一个我应该解决的冲突而是它用 hello 替换了 hi 这个词
本质上它在不让我知道的情况下替换了 master 分支中的一些代码
我的问题是为什么 git 不认为这是冲突,即使 bitbucket 网站说
A conflict arises when two separate branches have made edits to the same line in a file
合并在 Git 中的工作方式,忽略重命名,是 Git 考虑历史中的三个点:两个分支的头部,以及合并基础,通常是最近的共同祖先。 Git 通过查看合并基础和每个头(通常是一个分支)之间的变化来合并。
如果一侧包含更改,例如 mybranch
,而另一侧不包含更改,例如 master
,则合并的结果就是更改。这就是为什么首先执行合并的目标。如果双方都有相同的更改或双方都没有更改,则 Git 将采用通用版本。只有双方在同一个区域有不同的变化才会发生冲突,因为Git然后不知道该怎么办。
我正在学习git我试过下面的例子:
在 master 分支中我创建了一个文件 1.txt 其中有一行 hi
然后我切换到一个新分支“mybranch”并将同一行编辑到 hello
而不是 hi
当我回到主分支和 运行 一个 git 合并命令 git merge mybranch
它没有检测到这是一个我应该解决的冲突而是它用 hello 替换了 hi 这个词
本质上它在不让我知道的情况下替换了 master 分支中的一些代码
我的问题是为什么 git 不认为这是冲突,即使 bitbucket 网站说
A conflict arises when two separate branches have made edits to the same line in a file
合并在 Git 中的工作方式,忽略重命名,是 Git 考虑历史中的三个点:两个分支的头部,以及合并基础,通常是最近的共同祖先。 Git 通过查看合并基础和每个头(通常是一个分支)之间的变化来合并。
如果一侧包含更改,例如 mybranch
,而另一侧不包含更改,例如 master
,则合并的结果就是更改。这就是为什么首先执行合并的目标。如果双方都有相同的更改或双方都没有更改,则 Git 将采用通用版本。只有双方在同一个区域有不同的变化才会发生冲突,因为Git然后不知道该怎么办。