由于Git是分布式版本控制系统,和SVN的集中式管理不同,每个人电脑上均为完整的库,不用必须与服务器连接。所以当我们做了某些修改,想要放弃此修改时,在SVN中,我们可以删除这部分代码,然后重新update即可。那么在git中如何操作呢,我们将利用reset、clean命令解决此问题。这些命令不指定路径则默认在当前路径下执行。
reset命令
git reset [--hard|soft|mixed|merge|keep] [<commit>或HEAD]:将当前的分支reset到指定的<commit>或者HEAD,如果不显示指定commit,默认是HEAD,即最新的一次提交。
- --hard重设(reset) index和working directory,自从- <commit>以来在working directory中的任何改变都被丢弃,并把- HEAD指向- <commit>。此为彻底回退。
- --softindex和working directory中的内容不作任何改变,仅仅把- HEAD指向- <commit>。这个模式的效果是,执行完毕后,自从- <commit>以来的所有改变都会显示在git status的”Changes to be committed”中
| 
 | 
 | 
clean命令
git clean经常和git reset --hard一起结合使用。 reset只影响被track过的文件,clean可删除没有track过的文件。结合这两个命令能让你的工作目录完全回到一个指定的<commit>的状态。
| 
 | 
 |