我遇到一个问题,每当我在生产服务器中运行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,我只会看到" Merge branch' master'之类的消息。 of ****"。
关于如何摆脱那些似乎毫无用处的351个本地提交的任何想法?
答案 0 :(得分:4)
首先,为了以防万一,让我们创建当前分支的备份:
git branch master-bak
如果git diff origin/master..HEAD
提供空输出,则表示您当前的分支与origin/master
具有相同的内容。在这种情况下,您只需将本地分支重置为与origin/master
相同的状态:
git reset origin/master
答案 1 :(得分:0)
我想在你最后一次拉远程主机后,原点/主机有一些恢复原因。如果您想与远程主服务器保持同步,只需删除本地主服务器并创建新服务器。
git checkout another branch
git branch -D master
git checkout -b master
git pull origin/master
答案 2 :(得分:0)
显然你不是一个人工作所以有人强迫推(你的本地回购与远程有不同的历史记录),之后其他所有人都应该做normal
,以保持与原点相同的历史/主。
答案 3 :(得分:0)
当git status表示你的分支在351提交之前超过'origin / master'时,它实际上意味着origin / master。 简单地说它意味着你的仓库中有一个名为origin / master的指针,指向该远程分支的HEAD的提交,并且你的master在这个commit之前。所以当你运行git pull时,你的本地更改也会合并。在这种情况下,您需要在合并后签出新分支或再次提交。