通过本地恢复原始主状态

时间:2012-07-16 13:07:57

标签: git branch

我通过

将一些提交移到了另一个分支
git checkout -b old-state 0d1d7fc32

现在我想将我的本地主状态推送到掌握,但是

Everything up-to-date

发生。我怎样才能恢复原状?

1 个答案:

答案 0 :(得分:1)

让我们总结一下:

  • 您已将当地的master状态推送到origin/master
  • 你做错了什么
  • 您想要将master重置为修订版0d1d7fc32
  • 您还希望origin/master指向0d1d7fc32

这是如何实现的:

  1. 将您的本地主分支重置为0d1d7fc32
    git checkout master
    git reset --hard 0d1d7fc32

  2. origin/mastermaster相等:
    git push -f origin master:master

  3. 完成。


    不要将Git命令与您可能从其他VCS知道的命令混淆。我知道有一些VCS checkout意味着

      

    将工作副本带到修订

    Git的情况并非如此。也许您想浏览http://git-scm.com/以获得第一印象,然后read a book左右。


    原始答案:
    git checkout -b old-state 0d1d7fc32创建一个名为old-state的本地分支,其最后一次提交是具有SHA d1d7fc32的提交。

    我假设您希望origin/master处于与本地master分支相同的状态。

    在这种情况下,请执行

    git push -f origin master:master
    

    使它们平等。

    git checkout不动任何东西。它只是创建一个名为old-state的新分支,它与当前分支共享相同的历史记录。如果您传递了修订号,它将共享相同的历史记录,直到(并包括)给定的修订版。