git查看历史和撤销操作
撤销提交
git commit --amend
可以撤销上一次提交的内容,不过并不是撤销整个提交的记录,当使用这个命令之后可以修改提交信息,同时,这个命令也会自动将暂存区中的所有文件提交。如果自上次提交以来未做任何修改,比如在上次提交之后立即执行这个命令,那么快照会保持不变,所修改的只是提交信息。
首先修改Test7.md,并提交
假如这时候突然发现上一个提交中遗漏了一个Test8.md,这时候只需要将Test8.md添加到暂存区。并使用命令git commit --amend
可以在最上面一行修改提交信息,改成“modified Test7.md and add Test8.md.”然后保存并退出vim的编辑,这时候查看提交历史(git log):
可以发现提交信息已经更改。
撤销暂存的文件
在Files文件夹添加Test4.md并添加到暂存区中
如果想要撤销处于暂存区的Test4.md,根据git status
的提示可以看出应该使用git reset HEAD Test4.md
命令。此时再使用git status
可以看出Test4.md已经处于未被跟踪状态。
撤销对文件的修改
首先将已经处于暂存区的Test4.md做一些修改,再查看其状态:
根据status命令的提示也可以知道想要撤销对文件的修改需要使用命令git checkout --Test4.md
这是再查看其状态:
可以发现文件恢复成了开始的样子。
但是并不太建议使用上面的命令,要注意的是在git中已提交的东西几乎都是可以恢复的,但是任何没有提交的东西丢失后很可能再也找不回来了。上面的命令就是将未提交的内容丢失了
查看历史
使用git log
命令可以会按时间列出所有更新,会列出每个提交的SHA-1校验和,作者的名字和和电子邮件信息,提交时间和提交说明。
git log -p
可以显示每次提交的内容差异,可以加上-2
来仅仅显示最近两次的提交。
git log --stat
可以看到每次提交的简略的统计信息,也就是-p
选项的简略版,当然也可以加上-2
选项来显示最近两次的提交
还有一个常用的选项是--pretty
,这个选项有一些内建的子选项可以选择,比如用oneline
将每个提交放在一行显示,当查看的提交数很大时很有效果,另外还有short,full,fuller
可以用,展示的信息或多或少有一些不同。
之前的-2
选项其实是git中限制输出长度的选项,它限制了只显示最近的两条提交,另外还有按照时间做限制的选项,比如--since
和until
也很有用
还有一个format
选项,可以定制要显示的记录格式,在这里就不详细介绍了,一般用上面的命令足够。
原文地址:https://www.cnblogs.com/haoocker/p/12272560.html