git学习之路 (时光倒流-代码回退 git reset 与 git revert)

说代码撤销之前先说说 git HEAD 和 相对引用

  1. HEAD

官方说法: HEAD 是一个对当前检出记录的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录。

我的理解就是指向,HEAD指向哪里,你的代码就是哪次提交。

  1. 相对引用 (^ 合 ~)
    1. ^
      HEAD^ 就表示相对当前HEAD指向的提交记录的上一级
    2. ~
      HEAD~1 就表示相对当前HEAD指向的提交记录的前1级
      HEAD~3 就表示相对当前HEAD指向的提交记录的前3级

git reset

我们当前的git


执行 git reset HEAD~1 后的git库状态

使用 git reset 回退一个提交版本后,我们的git仓库就根本不知道你有C2这次提交记录。

git revert

同样,当前git提交记录


使用 git revert HEAD^ 后的git提交记录

是不是很奇怪为什么多出了一次 C2` 的提交, 在这里 C2` 其实就等于 C1,同样实现了代码回退,只是保留了我们 C2 这次的提交

你可能感兴趣的:(git学习之路 (时光倒流-代码回退 git reset 与 git revert))