/ 写在前面 – 我热爱技术、热爱开源。我也相信开源能使技术变得更好、共享能使知识传播得更远。但是开源并不意味着某些商业机构/个人可以为了自身的利益而一味地索取,甚至直接剽窃大家曾为之辛勤付出的知识成果,所以本文未经允许,不得转载,谢谢/


--hard

放心添加这个参数。

HEAD

当前版本是 HEAD ,上一个版本是 HEAD^ ,上上个版本是 HEAD^^ ,前100个版本可用 HEAD~100 简单表示。

回去了还可以再回来吗?

Git的设计还是很全面的,不仅可以穿梭到历史版本,还可以穿梭回当前版本,只要没清屏,知道要回去那个版本的版本号即可。版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。尽量多写几个即可。

  1. senchun@Senchuns-MBP GitRepo % git log --oneline -n2
  2. 7d59c59 (HEAD -> master) Modify readme
  3. 96799fd Rename readme to readme.md
  4. senchun@Senchuns-MBP GitRepo % git reset --hard HEAD^
  5. HEAD is now at 96799fd Rename readme to readme.md
  6. senchun@Senchuns-MBP GitRepo % git log --oneline -n2
  7. 96799fd (HEAD -> master) Rename readme to readme.md
  8. 782d168 Add js file
  9. senchun@Senchuns-MBP GitRepo % git reset --hard 7d59
  10. HEAD is now at 7d59c59 Modify readme
  11. senchun@Senchuns-MBP GitRepo % git log --oneline -n2
  12. 7d59c59 (HEAD -> master) Modify readme
  13. 96799fd Rename readme to readme.md

第4行的代码表示我们已经回到上一个版本了,然后第9行的代码又回到当前版本了,其中的 7d59 是在第2行查看的版本号。

如果你清屏了,不知道版本号了,想再退回到某个版本可以吗?Git还是提供了一颗后悔药的,Git提供了一个 git reflog 用来记录你的每一次命令,从而可以追溯到想回去版本的版本号。