Linux 为什么git pull需要进行合并?
我现在正在学习git。我已经在linux中创建了git repo。请使用以下命令: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 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