How do I sort out this git mess? Files on server ahead by two commits
本问题已经有最佳答案,请猛点这里访问。
每当我在服务器上执行git pull时,我就会收到消息;
1 | Your branch is ahead of origin/master by 2 commits. |
这两者应该是同步的。我不知道我是怎么到这里的。我在服务器上想要的原始/主服务器上的所有内容。我不在乎在最后几次提交中是否丢失了更改,这并不重要。我怎样才能让它们恢复同步,让我能像平常一样推拉?
编辑:我运行
AD7Six的答案将丢弃您的本地更改。您还应该能够简单地将您在本地拥有的内容发送到服务器:
1 2 | git checkout master # Get back on a real branch from the detached HEAD git push origin master |
。
另外,
此消息表示服务器上的主分支具有不在远程中的提交。如果有人在服务器上提交了,而您不希望任何人从这个特定的签出中提交-这将导致这种情况。
看看这两个承诺是什么…不在遥控器中的:
1 2 | git log origin/master..HEAD # just the commit messages git diff origin/master..HEAD # the diff |
取消这两项承诺
如果存在两个提交,则不希望保留;要将主分支更改为与远程的主分支完全匹配,请执行以下操作:
1 2 | git checkout master # make sure you are on your master branch git reset origin/master --hard # force local history to exactly match the remote. |
号保持这两个承诺
如果您确实想保持提交-只需将它们推到远程,您的主分支就会同步:
1 | git push origin master |