为什么git pull需要进行合并?

时间:2015-01-19 10:00:59

标签: linux git

我现在正在学习git。我在linux中创建了一个git repo使用这个命令:

git clone --bare dev dev.git

cp -r dev.git /git/dev.git

现在我使用另一台计算机克隆它

git clone ssh://xxx@xxx.com/git/dev.git

并推送一些提交。

我需要在我的linux服务器上工作的目录,所以我删除了第一个开发目录,并克隆了一个新的:

rm dev -rf
git clone /git/dev.git

但是当我使用git pull时,我得到了这个:

# Merge branch 'master' of /git/dev

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
这是什么意思?

2 个答案:

答案 0 :(得分:1)

如果git pull提示您输入合并提交消息,则意味着您所在的本地分支和上游分支已经分歧(意味着每个分支都有一个或多个提交,而另一个分支没有)。 / p>

在这种情况下,git pull默认会尝试合并更改。在您的情况下,git已经执行了合并,并要求您提供合适的提交消息。

有关详细信息,我建议您阅读一些git简介。一本好读的文章是#34; Pro Git",即available onlineChapter 2.5解释了git pull期间发生的事情。

答案 1 :(得分:1)

尝试

git pull --rebase

,或者使用

将其配置为默认值
git config pull.rebase true

或者,(我的偏好)在两个步骤中完成,这样你就可以看到会发生什么。

git fetch origin
git log ...
git rebase orign/my_branch

免责声明:Rebase会重写历史记录,但是如果您没有推送任何将被重写的提交,或者没有其他人在您正在推动的分支上工作,则没有真正的问题。