首页 > 解决方案 > 为什么“git pull”有时会要求我提供合并请求评论?

问题描述

我看到有时,我没有排队提交任何东西。我做一个

git status

这让我“没有任何承诺”。之后我做了一个

git pull

它从远程存储库中获取所有更新。人们会期望命令到此结束,对吗?但相反,它给了我一个 vim 编辑器,其中包含“添加您的评论以进行合并”的消息。

这里发生了什么?当我拉动时,git试图完全合并什么?这似乎是随机发生的。

标签: git

解决方案


要注意的是,git pull不仅从远程存储库获取更新,还要将它们与本地分支集成(合并)。

如果您还没有触及本地分支,那么git pull只需将您的分支更新为远程版本(也称为快进)。但是,如果您在本地版本上进行了任何提交,那么您的分支和远程已经分歧,并且为了将远程合并回来,git 需要创建一个合并提交。这就是为什么有时只要求您提供合并提交消息的原因。

在下面的示例中(来自git help pull),您在提交 E 处克隆了远程存储库。然后您提交了 F 和 G。与此同时,A、B 和 C 被提交到远程。然后,当你告诉 git 拉取这些更新时,它会创建合并提交 H。

      A---B---C origin/master
     /         \
D---E---F---G---H master

如果您只想查看来自远程的更新,而不是实际将它们合并到本地分支,请使用git fetch而不是git pull. (git pull基本上是git fetch+ git merge。)然后您可以使用 . 查看遥控器上的历史记录git log origin/master


推荐阅读