我已经看到有时候,我没有排队等待提交。我做
git status
那让我“什么都没做”。之后,我要做
git pull
从远程存储库获取所有更新。人们会期望命令在此结束,对吗?但是,相反,它为我提供了一个vim编辑器,并显示消息“为合并添加您的注释”。
这是怎么回事?当我进行拉动时,git到底想尝试合并什么?它似乎是随机发生的。
答案 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
查看遥控器上的历史记录。