我目前正在 git 上进行一个小组项目,我的朋友已经在这个项目上工作了一个星期了。现在轮到我来做这件事了。一旦我完成了我的代码并尝试合并,git 就会自动用我的覆盖他的工作,而不要求我解决冲突。我不明白,因为我过去做过很多合并,没有任何问题。
朋友=F |我=我
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 合并。但似乎并不冲突。它只会覆盖他的工作。
我拉主干,然后创建一个新分支
因此,当您创建新分支时,
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
上的合并提交中执行。