Git 回退操作总结

1. git reset --hard A

  • 用法: 将当前分支和工作目录回退到提交 A
  • 作用: 完全丢弃提交 B 的所有更改,永久删除 B 的历史记录和工作目录更改。

示例

假设当前提交历史如下:

A -- B -- C -- D (master)

执行命令:

git reset --hard A

结果:

A (master)

所有的 BCD 提交都被删除,工作目录回到 A 状态。


2. git reset --soft A

  • 用法: 将当前分支回退到提交 A,保留更改在暂存区。
  • 作用: 回到 A 的状态,但保留 B 的更改,以便后续修改或重新提交。

示例

执行命令:

git reset --soft A

结果:

A (master)

BCD 的更改会保留在暂存区,但历史只回到 A


3. git revert B

  • 用法: 创建一个新的提交,撤销提交 B 的更改。
  • 作用: 保留 B 的历史记录,同时使代码状态回到 A 的状态,不影响其他协作者。

示例

执行命令:

git revert B

结果:

A -- B -- C -- D -- E (master)

Git 创建一个新的提交 E,撤销 B 的更改,保留其他提交。


4. git checkout A

  • 用法: 切换到提交 A 的状态,通常用于查看历史版本。
  • 作用: 将工作目录恢复到提交 A 的状态,但不会改变当前分支的历史。

示例

执行命令:

git checkout A

结果:
你进入了 A 的状态,但历史没有改变。此时在“分离头指针(detached HEAD)”状态下,如果要继续开发,建议创建一个新分支:

git checkout -b new-branch

这样历史会变成:

A (new-branch)

A 和 B 是提交的哈希值,可以通过 git log 查看。

posted @ 2024-10-22 17:14  林汉州win  阅读(3)  评论(0编辑  收藏  举报