Git 面试题 目录

如何撤销 Git 提交?

推荐答案

要撤销 Git 提交,可以使用以下几种方法:

  1. 撤销最近一次提交但保留更改

    这将撤销最后一次提交,但保留工作目录和暂存区的更改。

  2. 撤销最近一次提交并丢弃更改

    这将撤销最后一次提交,并丢弃工作目录和暂存区的所有更改。

  3. 撤销提交并创建一个新的提交来反转更改

    这将创建一个新的提交,反转最后一次提交的更改。

  4. 撤销多个提交

    其中 n 是要撤销的提交数量。

本题详细解读

1. git reset --soft HEAD~1

  • 作用:撤销最近一次提交,但保留工作目录和暂存区的更改。
  • 适用场景:当你想要修改提交信息或重新组织提交时。
  • 注意事项:撤销的提交仍然存在于 Git 历史中,但不会出现在 git log 中。

2. git reset --hard HEAD~1

  • 作用:撤销最近一次提交,并丢弃工作目录和暂存区的所有更改。
  • 适用场景:当你确定不再需要这些更改时。
  • 注意事项:撤销的提交和更改将永久丢失,无法恢复。

3. git revert HEAD

  • 作用:创建一个新的提交,反转最后一次提交的更改。
  • 适用场景:当你想要撤销提交但保留提交历史时。
  • 注意事项git revert 不会修改历史记录,而是添加一个新的提交来反转更改。

4. git reset --hard HEAD~n

  • 作用:撤销多个提交,并丢弃工作目录和暂存区的所有更改。
  • 适用场景:当你需要撤销多个提交时。
  • 注意事项:撤销的提交和更改将永久丢失,无法恢复。

通过这些命令,你可以灵活地撤销 Git 提交,并根据需要保留或丢弃更改。

纠错
反馈