git教程四:hard 和 soft

我们对一个文件做了多次修改,并每次都提交,但是这些都是同类功能,所以我们打算将多次提交合并,我们可以使用

$ git reset --hard xxx
$ git reset --soft xxx

xxx表示版本号,这两个命令的区别如下

hard

我们对1.txt文件做了3次修改,每次增加的内容分别是123,456,789,提交之后log如下 img 然后我们执行git reset --hard xxx后,log如下 img 文件内容如下,修改的内容没有了

img

soft

我们对1.txt文件做了3次修改,每次增加的内容分别是123,456,789,提交之后log如下 img 然后我们执行git reset --soft xxx后,log如下 没有add 123,456,789三次的提交了 img 文件内容如下,三次增加的修改还在文件中 img

执行git commit -m 'add 123456789 to 1.txt'现在只有一条提交记录

总结

  • 相同点:都可以回退版本

  • 不同点:hard不会保留修改记录,soft会保留修改记录

  • 适用场景:

    hard适合于舍弃已经开发并提交到版本的功能,就像时间线回到add 123之前;

    soft适合多次提交的都是同类型的操作