为什么git pull会导致数千个合并冲突?

为什么git pull会导致数千个合并冲突?,git,Git,我们有一个远程repoorigin,它有主分支、开发分支和一系列错误修复分支 几个月前,我将它克隆到了local,并签出了开发分支,但什么也没做,然后几天前我切换到bugfix_1分支,但仍然什么也没做 今天,我切换回开发分支,运行了git pull,但它导致了数千次合并冲突 我曾经认为,git pull类似于svn update,无论远程repo上更改了多少文件,都不应该有任何合并冲突,因为我没有在本地更改任何内容 我曾经是一个svn用户,在git中是新手,如果有人能提供一些解释,或者一些可能

我们有一个远程repoorigin,它有主分支、开发分支和一系列错误修复分支

几个月前,我将它克隆到了local,并签出了开发分支,但什么也没做,然后几天前我切换到bugfix_1分支,但仍然什么也没做

今天,我切换回开发分支,运行了git pull,但它导致了数千次合并冲突

我曾经认为,git pull类似于svn update,无论远程repo上更改了多少文件,都不应该有任何合并冲突,因为我没有在本地更改任何内容

我曾经是一个svn用户,在git中是新手,如果有人能提供一些解释,或者一些可能的原因,我将不胜感激。或者我只是完全做错了什么

另一个问题是,假设我在开发分支,这两个命令之间有什么区别吗:

吉特拉力

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
?显示至少一个合并冲突会很有帮助。