在“git pull”之后我是否提交所有修改的文件?

125*_*748 5 git github gitlab

我想将我的分支合并到master. 我已经将我的分支上的所有内容都切换到了 master 上。我需要git pull确保我是最新的,但是当我尝试时,git merge mybranch我收到错误

错误:无法合并,因为您有未合并的文件。

git status显示了很多被修改的文件,大概是我最近拉取的。我应该做一个git add .“git commit -m“某事?”,或者处理这个问题的最佳方法是什么?对一堆已经由各自作者提交的更改进行提交似乎很奇怪?

tor*_*rek 3

不要使用git pull. 它只会让你感到困惑。嗯,我想它已经有了!

所做的一切git pull就是运行git fetch(从其他 Git 获取新的提交),然后是第二个 Git 命令。通常的第二个 Git 命令是git merge. 看起来您让它运行了这两个命令。在本例中,您先运行它,git fetch origin然后运行git merge origin/master​​.

此时可能发生的情况是第二个命令失败。但由于您不知道这git pull 意味着什么 git fetch && git merge,所以您看到的只是这个奇怪的错误,它抱怨您已经合并。现在你想合并其他东西,但你不能,因为你仍然处于先前失败的合并过程中。

如果你跑了git fetch origin,你就会看到它起作用了。然后,您将运行git merge origin/whatever并看到它失败,并知道您必须完成此合并,或中止它,或变基,或您此时喜欢做的任何事情,然后才能进行git merge 另一个分支。

git pull命令旨在提供便利,是执行两个 Git 命令的快捷方式,因为 agit fetch几乎总是后面跟着git mergegit rebase。所以当 Git 第一次被构建时,他们制作了用户前端git pull,它使用了隐藏的后端git fetch。但事实证明,将这两个步骤分开通常非常有用,这样您就可以(例如)看到您编辑的内容fetch。它们git fetch仅可由人类使用(嗯,与任何其他 Git 命令一样:-)),并且如何git pull使用只是为了方便。确实如此,除非不是这样,就像现在一样。