0

我将一些提交移到另一个分支

git checkout -b old-state 0d1d7fc32

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

Everything up-to-date

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

4

1 回答 1

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

完毕。


不要将 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,它与当前分支共享相同的历史记录。如果您传递修订号,它会共享相同的历史记录,直到(包括)给定的修订。

于 2012-07-16T13:18:55.653 回答