git log详细使用参数,查看某个文件修改具体内容

1. git log filename

可以看到fileName相关的commit记录
2. git log -p filename
可以显示每次提交的diff
3. 只看某次提交中的某个文件变化,可以直接加上fileName
git show commit-id filename

4.根据commit-id查看某个提交

git show -s --pretty=raw  id(59047cce6eeb2d8fd9fa361e01dbb88d9a37cf4e)

5.借助可视化工具 如 sourceTree 在最后一次修改的记录上 右键选中文件 查看历史修改

6.git log 的常用选项

注:filename (绝对路径) 或 (先进入此文件所在的目录下,当前文件名)

 

选项 说明

-p

按补丁格式显示每个更新之间的差异。

--stat

显示每次更新的文件修改统计信息。

--shortstat

只显示 --stat 中最后的行数修改添加移除统计。

--name-only

仅在提交信息后显示已修改的文件清单。

--name-status

显示新增、修改、删除的文件清单。

--abbrev-commit

仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。

--relative-date

使用较短的相对时间显示(比如,“2 weeks ago”)。

--graph

显示 ASCII 图形表示的分支合并历史。

--pretty

使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。


选项 说明

-(n)

仅显示最近的 n 条提交

--since--after

仅显示指定时间之后的提交。

--until--before

仅显示指定时间之前的提交。

--author

仅显示指定作者相关的提交。

--committer

仅显示指定提交者相关的提交。

--grep

仅显示含指定关键字的提交

-S

仅显示添加或移除了某个关键字的提交


7、常用的命令git log,用来查看和搜索提交历史。

git log

使用git log命令,什么参数都没有的话,会以下面的格式输出所有的日志(我当前的git仓库只有三个提交)。如果日志特别多的话,在git bash中,按向下键来查看更多,按q键退出查看日志。

$ git log
commit c08099d1cf05fdc541752b049a91b92bdcf78a12
Author: zdk <zdk@menhoo.com>
Date:   Mon Jun 19 23:08:07 2017 +0800

    add hello.txt to git rep

commit 723687a41685667a01dbd6254eb148d19501c3f1
Author: zdk <zdk@menhoo.com>
Date:   Sun Jun 18 22:27:29 2017 +0800

    add c.txt

commit 1a29bde9519195f14e98270c29d125e9d18b8d87
Author: zdk <zdk@menhoo.com>
Date:   Sun Jun 11 22:40:21 2017 +0800

    新增了a.txt和b.txt文件
  • git log –oneline

--oneline参数可以将每条日志的输出为一行,如果日志比较多的话,用这个参数能够使结果看起来比较醒目。为了节约日志的篇幅,我后面也会频繁地使用这个参数。

$ git log --oneline
c08099d add hello.txt to git rep
723687a add c.txt
1a29bde 新增了a.txt和b.txt文件

git log -[length]

-[length]参数用于指定显示多少条日志

$ git log --oneline -2
c08099d add hello.txt to git rep
723687a add c.txt

这里面使用-2来指定显示前两条日志

git log –skip=[skip]

--skip=[skip]参数用来指定跳过前几条日志。下面的命令用来查看第二和第三条日志

$ git log --skip=1 -2 --oneline
723687a add c.txt
1a29bde 新增了a.txt和b.txt文件

git log –pretty=raw

我在上面多次使用--oneline是为了节约文章篇幅,使文章看起来尽量整洁。而--pretty=raw则会显示出关于每次提交的更多信息

$ git log --pretty=raw -1
commit c08099d1cf05fdc541752b049a91b92bdcf78a12
tree 5ef6cd7051101c4294cb92980f0cf3740478e120
parent 723687a41685667a01dbd6254eb148d19501c3f1
author zdk <[email protected]> 1497884887 +0800
committer zdk <[email protected]> 1497884887 +0800

    add hello.txt to git rep

输出的信息中包括提交ID,文件树ID,父提交ID,作者和提交者,这些信息都非常有用。

git log -p

-p参数输出的信息会更多,用来显示提交的改动记录,相当于多次使用git show [commit_id]的结果。

$ git log -1 -p
commit c08099d1cf05fdc541752b049a91b92bdcf78a12
Author: zdk <zdk@menhoo.com>
Date:   Mon Jun 19 23:08:07 2017 +0800

    add hello.txt to git rep

diff --git a/hello.txt b/hello.txt
new file mode 100644
index 0000000..ce01362
--- /dev/null
+++ b/hello.txt
@@ -0,0 +1 @@
+hello

git log –graph

--graph参数会绘制提交的线索,如果有合并的话,也会更清晰地显示出来

$ git log --graph --oneline
* c08099d add hello.txt to git rep
* 723687a add c.txt
* 1a29bde 新增了a.txt和b.txt文件

git log –decorate

--decorate参数用来显示一些相关的信息,如HEAD、分支名、tag名等

$ git log --decorate --oneline
c08099d (HEAD -> master) add hello.txt to git rep
723687a add c.txt
1a29bde 新增了a.txt和b.txt文件

下面使用git tag命令给第二次提交加上一个名叫important的tag。

git tag 'important' 723687a

然后再次使用--decorate参数来查看一下

$ git log --decorate --oneline
c08099d (HEAD -> master) add hello.txt to git rep
723687a (tag: important) add c.txt
1a29bde 新增了a.txt和b.txt文件

显示出了tag的信息。

git log –name-status

--name-status参数会带出每次提交对应的文件改动。

$ git log --name-status --oneline
c08099d add hello.txt to git rep
A       hello.txt
723687a add c.txt
A       c.txt
1a29bde 新增了a.txt和b.txt文件
A       a.txt
A       b.txt

搜索git日志

通过作者搜索

有时候会从提交记录中查看一下自己(或某个人)的某次提交,git log命令可以很快地检索出这些信息

$ git log --author yourname

可以筛选出yourname用户提交的所有日志。这里的yourname可以包含通配符,从Author: zdk <[email protected]>的信息中匹配信息。

通过提交关键字搜索

$ git log --grep keywords

可以从提交的关键字中抓取匹配的commit项。

通过组合使用auther和grep,几乎能满足大部分检索需求了。

参考:
https://blog.csdn.net/chenpeng78/article/details/55212208
https://git-scm.com/docs/git-log/1.7.5
https://blog.csdn.net/daguanjia11/article/details/73823617

猜你喜欢

转载自blog.csdn.net/helloxiaozhe/article/details/80563427