/ 写在前面 – 我热爱技术、热爱开源。我也相信开源能使技术变得更好、共享能使知识传播得更远。但是开源并不意味着某些商业机构/个人可以为了自身的利益而一味地索取,甚至直接剽窃大家曾为之辛勤付出的知识成果,所以本文未经允许,不得转载,谢谢。/
--hard
放心添加这个参数。
HEAD
当前版本是 HEAD
,上一个版本是 HEAD^
,上上个版本是 HEAD^^
,前100个版本可用 HEAD~100
简单表示。
回去了还可以再回来吗?
Git的设计还是很全面的,不仅可以穿梭到历史版本,还可以穿梭回当前版本,只要没清屏,知道要回去那个版本的版本号即可。版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。尽量多写几个即可。
senchun@Senchuns-MBP GitRepo % git log --oneline -n2
7d59c59 (HEAD -> master) Modify readme
96799fd Rename readme to readme.md
senchun@Senchuns-MBP GitRepo % git reset --hard HEAD^
HEAD is now at 96799fd Rename readme to readme.md
senchun@Senchuns-MBP GitRepo % git log --oneline -n2
96799fd (HEAD -> master) Rename readme to readme.md
782d168 Add js file
senchun@Senchuns-MBP GitRepo % git reset --hard 7d59
HEAD is now at 7d59c59 Modify readme
senchun@Senchuns-MBP GitRepo % git log --oneline -n2
7d59c59 (HEAD -> master) Modify readme
96799fd Rename readme to readme.md
第4行的代码表示我们已经回到上一个版本了,然后第9行的代码又回到当前版本了,其中的 7d59
是在第2行查看的版本号。
如果你清屏了,不知道版本号了,想再退回到某个版本可以吗?Git还是提供了一颗后悔药的,Git提供了一个 git reflog
用来记录你的每一次命令,从而可以追溯到想回去版本的版本号。