git log
简介
git log
可以让我们查看提交历史,他会默认输出 commit hash
, author
, date
, commit message
.
在官网是这样定义它的:
git log
的本质是展示提交信息.但是该命令配合一些参数,可以如同
git rev-list
一样控制输出哪些提交和提交的显示方式,也可以如同git diff-*
一样决定怎样显示每个提交的修改内容。
命令
git log 的命令很多,我就列举一些常用的命令,如果想看全部命令,请移步到 官方文档
$ git log --oneline
--oneline
简化 git log
的默认的输出,仅仅输出 commit hash
前7个字符串和 commit message
.
$ git log --stat
--stat
是在 git log
的基础上输出文件增删改的统计数据。
$ git log -p
-p
控制输出每个 commit
具体修改的内容,输出的形式以 diff
的形式给出。
$ git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --relative-date
--graph
:图形化
--pretty
:以精简模式显示
--abbrev-commit
:仅显示 SHA-1
的前几个字符,而非所有的 40 个字符。
--relative-date
: 使用较短的相对时间显示
git stash
git stash
的作用就是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容。这也就是说,stash
中的内容不仅仅可以恢复到原先开发的分支,也可以恢复到其他任意指定的分支上。git stash
作用的范围包括工作区和暂存区中的内容,也就是说没有提交的内容都会保存至堆栈中。
注:必须 add
添加到缓存区之后才能 git stash
命令
$ git stash [save message]
将修改的文件临时保存,save
为可选项,message
为本次保存的备注,在 git statsh list
可以看到备注的信息回复之前的改动,最新保存的永远都是 stash@{0}
,之前暂存的索引就会依次增加,跟栈一样
$ git stash list
查看所有暂时保存的记录列表
$ git stash apply stash@{num}
将暂存区的改动数据恢复,num
是可选项,通过 git stash list
可查看具体值,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash apply stash@{0}
$ git stash pop stash@{num}
将暂存区的改动数据恢复,num
是可选项,通过git stash list
可查看具体值,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash pop stash@{0}
$ git stash drop stash@{num}
删除某个暂时保存的 stash
,num
是可选项,通过git stash list
可查看具体值,不带num
则默认删除最近的一次进度相当于git stash drop stash@{0}
$ git stash clear
删除所有保存的工作进度