【问题标题】:Git how to restore old commitGit如何恢复旧的提交
【发布时间】:2012-10-09 16:53:06
【问题描述】:

我需要查看我几周前所做的提交,例如当我这样做时

> git log --oneline -10
b45e80d ten
711aa9c nine
166dbfa eight
26abb54 seven
ddd6bb6 siz
54430c3 five
ca2d76f four
81ccc8c three
d362fbc two
7d43aba one

我需要暂时恢复我的网站,以说明它是在我完成此提交之后81ccc8c three

我该怎么做?


还好我在尝试之前将 repo 推送到了 bitbucket

git revert 81ccc8c

并且我的文件没有在项目文件夹中更新,但是当我执行 git status 并且不会让我 revert 回到任何其他提交时它显示了一堆更改。

我该怎么办才回b45e80d ten

【问题讨论】:

    标签: git commit restore


    【解决方案1】:

    你想签出那个提交:

    git checkout 81ccc8c
    

    这将更新您的目录以反映该提交的内容。您可能必须先存储更改。之后,您将在 detached head state 中,并且您应该避免进行任何提交,除非您将某个分支与当前提交相关联。

    【讨论】:

      【解决方案2】:

      您可以使用结帐:

      git checkout 81ccc8c
      

      这将使您离开当前的分支,并将您置于您用作结帐参数的提交状态。要返回您的分支,只需检查您所在的分支(例如 master):

      git checkout master
      

      您不想使用还原。这将应用一个新的提交,撤消您作为参数传递的提交以恢复这不是您想要的。要撤消意外还原的影响,您应该重置回“十”提交:git reset --hard b45e80d

      【讨论】:

      • doh git 太复杂了,我最好手动复制文件……好吧,我继续使用 git 作为它的好工具,但为了不搞砸,我会在运行任何命令之前复制我的 git repo阶段提交和推送:)
      猜你喜欢
      • 2016-06-23
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 2020-06-19
      • 2015-02-07
      • 2018-10-17
      • 2012-04-08
      • 1970-01-01
      相关资源
      最近更新 更多