我该如何回滚到 git 中的特定提交?
有人可以给我的最佳答案是使用git revert
X 次,直到达到所需的提交。
假设我想恢复为 20 提交的旧提交,我必须运行 20 次。
有没有更简单的方法可以做到这一点?
我不能使用 reset,因为此存储库是公共的。
尝试这个:
git checkout [revision] .
其中[revision]
是提交哈希(例如: 12345678901234567890123456789012345678ab
)。
别忘了.
最后,非常重要。这会将更改应用于整个树。您应该在 git 项目根目录中执行此命令。如果您在任何子目录中,那么此命令仅更改当前目录中的文件。然后提交,你应该很好。
您可以通过以下方式撤消该操作
git reset --hard
它将删除工作目录和登台区域中的所有修改。
要回滚到特定提交:
git reset --hard commit_sha
要回滚 10 次提交:
git reset --hard HEAD~10
如果您不想重写历史记录,可以使用以下帖子中的 “git revert”
好吧,我想问题是,“回滚” 是什么意思?如果由于公开而不能reset
并且想要保持提交历史记录完整,那是否意味着您只希望工作副本反映特定的提交?使用git checkout
和提交哈希。
编辑:正如评论中指出的那样,使用git checkout
而不指定分支将使您处于 “无分支” 状态。使用git checkout <commit> -b <branchname>
签入分支,或git checkout <commit> .
签入当前分支。