我将一些提交移到另一个分支
git checkout -b old-state 0d1d7fc32
现在我想将我的本地主状态推送到主状态,但是
Everything up-to-date
发生。我怎样才能恢复原始状态?
让我们总结一下:
master
送到origin/master
master
为修订版0d1d7fc32
origin/master
指出0d1d7fc32
这是如何实现的:
将您的本地主分支重置为0d1d7fc32
:
git checkout master
git reset --hard 0d1d7fc32
使origin/master
和master
平等:
git push -f origin master:master
完毕。
不要将 Git 命令与您可能从其他 VCS 知道的命令混淆。我知道有一些 VCScheckout
意味着
将工作副本进行修订
这不是 Git 的情况。也许您想浏览http://git-scm.com/以获得第一印象,然后阅读一本书左右。
原始答案:
git checkout -b old-state 0d1d7fc32
创建一个名为的本地分支old-state
,其最后一次提交是带有 SHA 的那个d1d7fc32
。
我假设您希望与本地分支机构origin/master
处于同一状态。master
在这种情况下,做一个
git push -f origin master:master
使他们平等。
git checkout
不移动任何东西。它只是创建了一个新分支old-state
,它与当前分支共享相同的历史记录。如果您传递修订号,它会共享相同的历史记录,直到(包括)给定的修订。