查看提交历史
git log
按提交时间倒序显示,显示的内容有sha1校验码、提交人、邮箱和提交说明。
注:你查看完提交历史,有可能不能退出命令行,可以按一下键盘q
,就能退出来了。
显示每次提交的内容
git log -p
显示最近两次的修改的内容
git log -p -2
显示简要的增改行数统计
git log --stat
改变日志的展示格式
每次提交信息在一行展示
git log --pretty=oneline
常用的格式
#查看更多的提交信息
git log --pretty=format:"%h - %an, %ar : %s"
#展示每个提交所在的分支及其分化衍合情况
git log --pretty=format:"%h %s" --graph
#这个比较的好看
git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
撤销操作
有时候发现有一些文件漏掉了,没有提交,所以就需要撤回上次的提交
git commit --amend
此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样。
取消已经暂存的文件
git reset HEAD file
取消对文件的修改
git checkout -- file
命令执行后的结果,这里分为三种情况
- 文件修改还未加入暂存区:文件恢复到修改之前
- 文件修改之后并且加入到暂存区:文件不会恢复到修改之前,必须先取消暂存,再撤销文件的修改
- 文件修改并加入暂存区,之后又修改:文件恢复到上次暂存时的样子。
注:这是一条不安全的命令,使用时要谨慎,否则你的工作就有可能白干了!
小技巧
上边使用自定义的格式显示提交日志,有的命令比较长,不会每次都要用手敲吧?这里git也给出了解决方案--给命令起别名(alias)
修改~/.gitconfig
文件,在文件里添加下列内容
[alias]
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
cm = commit
这段代码的意思就是用lg替换后边那一长串命令,用cm替换commit
git lg
git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
git commit -m "备注"
git cm -m "备注"
上面这两组命令都是等效的。