小编典典

使用 Git 根据提交 id 恢复到特定提交?

all

使用git log,我得到了迄今为​​止我所做的提交列表。

commit f5c5cac0033439c17ebf905d4391dc0705dbd5f1
Author: prosseek 
Date:   Fri Sep 3 14:36:59 2010 -0500

    Added and modified the files.

commit c14809fafb08b9e96ff2879999ba8c807d10fb07
Author: prosseek 
Date:   Tue Aug 31 08:59:32 2010 -0500

    Just simple test for core.editor.

... etc ...
  • 如何将其恢复为特定提交?例如,如果我想回去,我应该怎么做commit c14809fafb08b9e96ff2879999ba8c807d10fb07

  • 有没有其他/更好的方法可以返回到 Git 的特定提交?例如,我可以为每个提交添加一些标签以将其与标签一起取回吗?


阅读 88

收藏
2022-03-14

共1个答案

小编典典

你想将你的 repo 回滚到那个状态,或者你只是想让你的本地 repo 看起来像这样?

如果 you reset --hard,它将使您的本地代码和本地历史记录与提交时一样。但是,如果您想将其推送给拥有新历史的其他人,它将失败:

git reset --hard c14809fa

如果你reset --soft,它会将你的 HEAD 移动到它们所在的位置,但保持你的本地文件等相同:

git reset --soft c14809fa

那么你到底想用这个重置做什么呢?

编辑 -

您可以将“标签”添加到您的存储库中......然后返回标签。但是标签实际上只是 sha1 的快捷方式。

您可以将其标记为 TAG1.. 然后是git reset --soft c14809fa,git reset --soft TAG1git reset --soft c14809fafb08b9e96ff2879999ba8c807d10fb07都做同样的事情。

2022-03-14