刚刚我们介绍的 git reset 命令,其实就是移动了下 head 指针,移动之后,append GPL word 版本就相当于丢失了(好比一个没有地址指向的链表结点)
┌────┐
│HEAD│
└────┘
│
│ ○ append GPL word
│ │
└──▶ ○ add distributed word
│
○ wrote a readme file
复制代码
并且,其他人是难以找到这个版本的。另外一种回退到指定版本的方式是使用 git revert,其和 git reset 的区别 如下(引自廖雪峰老师的解答):
假如已经有 A -> B -> C,想回退到 B:
方法一:reset 到 B,但会丢失 C:A -> B
方法二:再提交一个 revert 反向修改,变成 B: A -> B -> C -> B, 这样 C 还在,但是两个 B 是重复的
看自己想要什么结果,大概 C 就是瞎提交织了(好比把敏感信息提交上去了),必须 reset,不能让别人找到;
假如 C 就是修改,现在又要改回来,将来大概再改成 C,那可以用 revert,这样两个版本都会保留;
相关用法: