git - 为什么 git pull 会导致数以千计的 merge 冲突?

标签 git

我们有一个远程仓库 origin,它有主分支、开发分支和一堆错误修复分支。

几个月前我把它克隆到本地,并检查了开发分支但什么也没做,然后前几天我切换到 bugfix_1 分支,仍然什么也没做。

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

我曾经认为git pull 类似于svn update,不管远程repo 上有多少文件改变,都不应该有任何 merge 冲突,因为我没有' 在本地更改任何内容。

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

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

git pull

git pull origin development

谢谢。

编辑:

我上周根据 Jan 的建议做了 git fetch origingit reset --hard origin/development

今天,我运行 git fetch origingit 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/

相关文章:

git - 将提交推送到 amazon ec2 时权限被拒绝(公钥)

git - 如何从 Git 存储库中删除工作树

git - 我如何找到 Git 仓库的版本

git命令将一个文件夹移动到另一个文件夹

git - "This branch has conflicts that must be resolved"但它已经 merge

Git 因提交而损坏

git - Monorepo 版本标签约定

git-svn 问题

git - 浏览复杂版本控制系统历史的最先进的用户界面是什么?

PHP:通过 HTTP 和命令行运行脚本时的结果不同