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

Linux 为什么git pull需要进行合并?,linux,git,Linux,Git,我现在正在学习git。我已经在linux中创建了git repo。请使用以下命令: git clone --bare dev dev.git 及 现在我用另一台电脑克隆它 git clone ssh://xxx@xxx.com/git/dev.git 并推动一些承诺 我需要在linux服务器中使用我的工作目录,因此我删除了第一个dev目录,并克隆了一个新目录: rm dev -rf git clone /git/dev.git 但当我使用git pull时,我得到了: # Merge br

我现在正在学习git。我已经在linux中创建了git repo。请使用以下命令:

git clone --bare dev dev.git

现在我用另一台电脑克隆它

git clone ssh://xxx@xxx.com/git/dev.git
并推动一些承诺

我需要在linux服务器中使用我的工作目录,因此我删除了第一个dev目录,并克隆了一个新目录:

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.

这意味着什么?

如果git pull提示您输入合并提交消息,这意味着您的本地分支和您从中提取的上游分支已经分离(意味着每个分支都有一个或多个提交,而另一个分支没有)

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

有关更多详细信息,我建议您阅读一些git简介。值得一读的好文章是《Pro Git》一书,这本书是。解释在git pull过程中发生的情况

git pull --rebase
而是,或者使用将其配置为默认值

git config pull.rebase true
或者,(我更喜欢)分两步进行,这样你就可以看到会发生什么

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

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

我总是在不合并的情况下获取(
git remote update
),然后查看发生了什么,并决定是否合并、重新设置基础,还是别的什么
git fetch origin
git log ...
git rebase orign/my_branch