为什么git pull会导致数千个合并冲突?
我们有一个远程repoorigin,它有主分支、开发分支和一系列错误修复分支 几个月前,我将它克隆到了local,并签出了开发分支,但什么也没做,然后几天前我切换到bugfix_1分支,但仍然什么也没做 今天,我切换回开发分支,运行了git pull,但它导致了数千次合并冲突 我曾经认为,git pull类似于svn update,无论远程repo上更改了多少文件,都不应该有任何合并冲突,因为我没有在本地更改任何内容 我曾经是一个svn用户,在git中是新手,如果有人能提供一些解释,或者一些可能的原因,我将不胜感激。或者我只是完全做错了什么 另一个问题是,假设我在开发分支,这两个命令之间有什么区别吗: 吉特拉力 及 git拉源开发 多谢各位 编辑: 根据简的建议,我上周做了为什么git pull会导致数千个合并冲突?,git,Git,我们有一个远程repoorigin,它有主分支、开发分支和一系列错误修复分支 几个月前,我将它克隆到了local,并签出了开发分支,但什么也没做,然后几天前我切换到bugfix_1分支,但仍然什么也没做 今天,我切换回开发分支,运行了git pull,但它导致了数千次合并冲突 我曾经认为,git pull类似于svn update,无论远程repo上更改了多少文件,都不应该有任何合并冲突,因为我没有在本地更改任何内容 我曾经是一个svn用户,在git中是新手,如果有人能提供一些解释,或者一些可能
git获取origin
和git重置--hard origin/development
今天,我运行了git fetch origin
和git status
,它给出了:
您的分支和“起源/发展”已发生分歧,
分别有45次和51次不同的提交
我不知道为什么会有45个本地提交,我什么都没有改变 关于你的第一个问题: 是的,您完全正确,如果您没有更改任何内容,就不应该有任何合并冲突。我能想象的唯一可能的原因是,如果有人更改了服务器上的历史记录(您永远不应该这样做),而不是只向服务器推送更新 通过运行以下命令,您可以使用服务器上的任何内容(如果没有任何本地更改):
git checkout master
git reset --hard origin/master
关于第二个问题:
请在StackOverflow上单独提问,这两个问题没有任何共同之处…如果您在开发分支中没有更改任何内容,您可以使用“git reset”回滚最新版本。 如果您在开发分支中更改了某些内容,并且希望合并远程主分支中的最新更改,则可以执行以下操作:
- git签出主机
- git pull(下载主分支中的最新更改)
- git签出开发
- git合并主机(合并开发分支中主机的更改)
git pull
在您的案例中,是指git fetch origin+git merge origin/development
git pull origin development
表示git获取源代码开发+git合并源代码/开发
在第二种情况下,它只获取源代码/开发分支。什么
git config core.autocrlf
return?@VonC它什么也不提供。对于所有git的问题:您是否尝试过git pull--rebase
?显示至少一个合并冲突会很有帮助。