Skip to content

Git最大的优势之一是它能够回退到特定的提交。当你犯了一个错误但还没有推送你的更改时,这尤其有用。在这种情况下,你可以简单地回退到以前的提交,修复你的错误并再次提交。

回退到提交

要回退到特定的提交,你可以使用git reset命令。这个命令将取消提交和暂存的更改,但将它们保留在工作目录中。你可以使用--hard标志来取消提交、暂存和删除更改。

# 语法: git reset [--hard] <commit>

git reset 3050fc0
# 回退到`3050fc0`,但在工作目录中保留更改

git reset --hard c0d30f3
# 回退到`c0d30f3`并删除更改

回退n个提交

你也可以使用git reset命令回退指定数量的提交。为此,你可以使用HEAD~<n>语法,其中<n>是你想要回退的提交数量。

# 语法: git reset [--hard] HEAD~<n>

git reset HEAD~5

回退5个提交,但保留工作目录中的更改

git reset --hard HEAD~3

回退3个提交,并删除更改

```

注意事项

--hard 标志被认为是一种破坏性操作,这意味着在使用时应特别小心。如果出现问题,您可以通过查看引用日志来恢复更改。

如果您已经将一些更改推送到远程仓库,您可能不希望重写历史记录,特别是如果其他人已经拉取了您的更改。在这种情况下,您可以使用 git revert撤消提交而不重写历史记录