为什么有时“ git pull”要求我提供合并请求注释?

时间:2019-07-28 14:43:51

标签: git

我已经看到有时候,我没有排队等待提交。我做

git status

那让我“什么都没做”。之后,我要做

git pull

从远程存储库获取所有更新。人们会期望命令在此结束,对吗?但是,相反,它为我提供了一个vim编辑器,并显示消息“为合并添加您的注释”。

这是怎么回事?当我进行拉动时,git到底想尝试合并什么?它似乎是随机发生的。

1 个答案:

答案 0 :(得分:1)

要意识到的是,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查看遥控器上的历史记录。