Git merge 会自动合并,即使它应该要求我解决冲突

问题描述 投票:0回答:1

我目前正在 git 上进行一个小组项目,我的朋友已经在这个项目上工作了一个星期了。现在轮到我来做这件事了。一旦我完成了我的代码并尝试合并,git 就会自动用我的覆盖他的工作,而不要求我解决冲突。我不明白,因为我过去做过很多合并,没有任何问题。

上周精准行动:

朋友=F |我=我

  • F 上周在主分支上推送了 5 次提交
  • 我拉主干,然后创建一个新分支
git checkout -b MyBranch
  • 我添加、提交然后将我的工作推送到我的分支
git add
git commit -m "[TEST]"
git push --set-upstream origin MyBranch
  • 我转到主分支并尝试合并
git checkout main
git pull
git merge MyBranch

然后 git 完全清除了我朋友和我的工作。

我理解 git 的方式是,如果我尝试更改别人写的一行,他会要求我解决冲突。我以前也这样做过,但最近好像没有。我想我忘记了一些东西,但我就是找不到它。

我已经和朋友一起做了一个测试仓库来尝试模拟 git merge。基本上,我的朋友会推送一个简单的程序来打印“Hello,World!”然后我会创建一个分支并更改“Hello, World!”到别的东西。一旦我更改了分支上的打印,我就会与 main 合并。但似乎并不冲突。它只会覆盖他的工作。

git git-merge git-merge-conflict
1个回答
0
投票

我拉主干,然后创建一个新分支

因此,当您创建新分支时,

main
已经包含了您朋友的更改。现在,您向分支提交了一些内容,再次切换到
main
,然后合并您的分支:

git add
git commit -m "[TEST]"
git checkout main
git pull
git merge MyBranch

Git merge 通过执行合并双方的贡献来工作。因此,如果您更改 MyBranch 中的某些行,则这是来自合并的 MyBranch 端的贡献。在合并的

main
方面,没有 贡献,因为自从创建 MyBranch 以来
main
没有改变。因此,MyBranch 的贡献只是在
main
上的合并提交中执行。

© www.soinside.com 2019 - 2024. All rights reserved.