Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

git 实践之 —— 如何清空所有编辑?

  有时候改个东西改着改着发现自己完全搞错了,想要将当前编辑的文件全部还原成上一个 commit 的状态要怎么做?以前看到有个后端开发的同学遇到这种问题在手动一个个把修改的文件 checkout 掉,对新增的文件也是先找到它们,然后再删除掉,我看得差点没吐血。
  checkout 可以针对目录直接把所有子文件的编辑全部 checkout 掉,这个最基本的操作我想大家应该都知道吧?关键点在于子目录问题。我以前就经常直接 checkout 当前目录 git checkout .   但当前目录经常不是根目录,后来改用 git checkout :/   在 git 命令中可以使用 :/ 直接定位到项目根目录,这样就可以直接清空掉所有尚未 add 的编辑。对于已经 add 的编辑还需要先 reset 一把,同样是直接针对根目录的 git reset :/   最后针对新增文件可能还需要做一次 clean git clean -fd :/   总结起来就是 git reset :/ git checkout :/ git clean -fd :/   然而这还是太麻烦了!reset 命令是很强大的,它不仅用于把 add 的内容还原回去,还可以 reset 到任意 commit 上,而且还有 --hard、--merge 等模式,于是我们可以直接用 reset 来搞定 git reset HEAD --hard   但是 reset 同样不会处理没有 add 新增文件,我们依然需要另一步。这里有两种方式,一种是先把新增的文件 add 后再 reset --hard 到 HEAD git add :/ git reset HEAD --hard   另一种是先 reset --hard 到 HEAD,当发现存在新增文件后再 clean git reset HEAD --hard git clean -fd :/   推荐第二种方式,因为新增文件未必有,很多时候一条命令就可以直接清空掉所有编辑。
网名:
3.80.55.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^