一、查看日志
git log
查看具体的日志中的操作
git show commit编号信息
二、reset
我们在使用中,难免会存在我一个文件改错了,但放在了本地git中了,如何从本地git中回滚为上一次的git内容呢?
此处我们使用reset命令
git reset 需要回到的具体的某个head的commitid信息
注意:
此处的 git reset xxx,中的xxx是指你需要回滚到的(目标)commitId。
我们在使用 git log 查看git操作日志信息时,他的操作记录是按照倒序排列的,最新的永远在最上面!我们需要回退到之前的那个git文件上,所以此处的xxx填入的是需要回退到的目标commitid。
从上面图片中我们更能加深理解:
从本地仓库回滚采取reset head 命令,这个head命令就是你的具体的commitid。
三、文件删除
我们在实际使用中,总会出现文件加载(git add),加载了不需要的文件,但我们又想把他从本地缓存中删除,如何实现呢?
上面的图片已经说明了,使用如下命令
checkout -
rm -cached
checkout HEAD
这三个命令有什么区别呢,以及和git reset HEAD又有什么区别呢?
1、当执行 “git reset HEAD” 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
2、当执行 "git rm --cached " 命令时,会直接从暂存区删除文件,工作区则不做出改变。
3、当执行 “git checkout .” 或者 "git checkout – " 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
4、当执行 “git checkout HEAD .” 或者 "git checkout HEAD " 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
此处参考文章:
《菜鸟教程git》