每次我做
git pull origin master
Git弹出一个编辑器,要求我在提交之前写一个关于合并的评论。知道为什么会这样吗?另一位开发人员也在做master工作,但没有遇到过这个问题。
据我所知,分支配置是正确的。除了我拉动时发生的令人讨厌的合并提交,我能够正常下拉变化并推动更改。
答案 0 :(得分:6)
git pull
为git fetch
,后跟git merge
。从Git 1.7.10开始,git merge
在合并时会弹出一个编辑器(参见release notes)。另一个开发人员可能正在使用旧版本的Git。
答案 1 :(得分:0)
我不是 git 专家,但我遇到了这种行为并设法恢复到工作状态,所以这里是我的提示,所有这些都使用 git 2.28.0 版(可能还有更早的版本)同样)。我怀疑在 git
方面更专业的人可以进一步简化这个答案。
当我做了一些事情来搞砸我的本地 master
/main
分支,导致它与它应该跟踪的分支不同步时,就会发生这种情况。我还没有弄清楚我做了什么把它弄得一团糟,因为它发生的频率还不够高,不足以让我诊断出我行为中的错误。
我注意到我进入这种状态的方式有两种:
git pull origin master
时弹出的编辑器窗口(如 OP 中所述)Merge branch 'master' of https://github.com/[myOrg]/[myRepo] into master
形式的提交时当它发生时我是如何解决这个问题的:
git log
Merge branch 'master' of https://github.com/[myOrg]/[myRepo] into master
master
分支与它应该跟踪的分支不同的点)git checkout [SHA]
git branch -m master master-broken
(可选地,您可以删除它,但这样更安全,您以后可以随时删除它)git checkout -b master
git pull [upstream source] master
(在 OP 的情况下,我希望它是 git pull origin master
)理解此修复程序的一个关键洞察是要意识到 master
分支没有什么特别特别之处——它只是一个约定。所以删除它(或重命名它)并用该名称创建一个新的没有问题。
答案 2 :(得分:0)
我不知道为什么会发生这种情况,但我可以提供解决方案。正如您所注意到的,它只发生在您身上,而不会发生在其他开发人员身上。所以你这边有些东西坏了。我也有这个问题,因此历史看起来并不干净。一个激进的解决方案是在本地删除 master 并重新获取它,就这么简单。