我们有一个远程仓库 origin,它有主分支、开发分支和一堆错误修复分支。
几个月前我把它克隆到本地,并检查了开发分支但什么也没做,然后前几天我切换到 bugfix_1 分支,仍然什么也没做。
今天,我切换回开发分支,运行git pull,但导致了数千次 merge 冲突。
我曾经认为git pull 类似于svn update,不管远程repo 上有多少文件改变,都不应该有任何 merge 冲突,因为我没有' 在本地更改任何内容。
我曾经是一个 svn 用户,并且是 git 的新手,如果有人能提供一些解释,或者一些可能的原因,我将不胜感激。或者也许我完全做错了什么?
另一个问题是,假设我在开发分支上,这两个命令之间有什么区别吗:
git pull
和
git pull origin development
谢谢。
编辑:
我上周根据 Jan 的建议做了 git fetch origin
和 git reset --hard origin/development
。
今天,我运行 git fetch origin
和 git status
,它给出:
Your branch and 'origin/development' have diverged, and have 45 and 51 different commits each, respectively.
我不知道为什么有 45 个本地提交,我没有更改任何东西!
最佳答案
第一个问题:
是的,你是绝对正确的,如果你没有改变任何东西,你不应该有任何 merge 冲突。我能想到的唯一可能原因是,如果有人更改了服务器上的历史记录(你永远不应该这样做),而不是仅仅将更新推送到服务器。
你可以只使用服务器上的任何东西(如果你没有任何本地更改)通过运行:
git checkout master
git reset --hard origin/master
第二个问题:
请把它放在 StackOverflow 上的一个单独的问题中,这两个问题没有任何共同点......
关于git - 为什么 git pull 会导致数以千计的 merge 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33009149/