git pull总是导致合并

git pull总是导致合并,git,Git,我有一个问题,每当我在生产服务器中运行git pull时,它都会导致合并 如果我运行git status,我将获得以下输出: $ git status # On branch master # Your branch is ahead of 'origin/master' by 351 commits. # (use "git push" to publish your local commits) # nothing to commit, working directory clean

我有一个问题,每当我在生产服务器中运行git pull时,它都会导致合并

如果我运行git status,我将获得以下输出:

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 351 commits.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean
好的,有351个本地提交。但git diff没有显示任何本地更改:

$ git diff origin/master..HEAD
(no output)
如果我使用git log origin/master..HEAD,我只会看到类似“合并****的分支‘master’”这样的消息


有没有关于如何摆脱那些351次本地提交的想法?这些本地提交似乎毫无用处。

我想在上次拉远程主机后,源/主机发生了一些恢复,这就是原因。如果您想更新远程主机,只需删除本地主机并创建新主机即可

git checkout another branch
git branch -D master
git checkout -b master
git pull origin/master 

显然,您不是单独工作的,因此有人执行了强制推送(您的本地回购与远程回购具有不同的历史记录),之后其他人都应该执行
git重置--hard origin/master
,以便与origin/master保持相同的历史记录

当git status显示您的分支比“origin/master”提前351次提交时,实际上是指origin/master。
简单地说,这意味着在您的repo中有一个名为origin/master的指针,指向作为该远程分支的头的提交,并且您的master位于该提交之前。因此,当您运行git pull时,您的本地更改也将合并。在这种情况下,您需要签出新分支或在合并后再次提交。

首先,为了以防万一,让我们为当前分支创建一个备份:

git branch master-bak
如果
git diff origin/master..HEAD
给出空输出,则表示当前分支的内容与
origin/master
相同。在这种情况下,您只需将本地分支重置为与原始/主分支相同的状态即可:

git reset origin/master

你现在的分行名称是什么?这只是一个猜测。但你有没有在不久前改写过历史?像重新基址、重置或任何重写历史并将其推送到服务器的操作?