美文网首页
git log --grep 筛选(转)

git log --grep 筛选(转)

作者: 朝西的生活 | 来源:发表于2017-12-21 15:02 被阅读0次

    按作者

    当你只想看某一特定作者的提交的时候,你可以使用 --author 标记。它接受正则表达式,返回所有作者名字满足这个规则的提交。如果你知道那个作者的确切名字你可以直接传入文本字符串:

    git log --author="John"
    

    它会显示所有作者叫 John 的提交。作者名不一定是全匹配,只要包含那个子串就会匹配。

    你也可以用正则表达式来创建更复杂的检索。比如,下面这个命令检索名叫 Mary 或 John 的作者的提交。

    git log --author="John\|Mary"
    

    注意作者的邮箱地址也算作是作者的名字,所以你也可以用这个选项来按邮箱检索。

    如果你的工作流区分提交者和作者,--committer 也能以相同的方式使用。

    按提交信息

    按提交信息来过滤提交,你可以使用 --grep 标记。它和上面的 --author 标记差不多,只不过它搜索的是提交信息而不是作者。

    比如说,你的团队规范要求在提交信息中包括相关的issue编号,你可以用下面这个命令来显示这个 issue 相关的所有提交:

    git log --grep="JRA-224:"
    

    你也可以传入 -i 参数来忽略大小写匹配。

    按文件

    很多时候,你只对某个特定文件的更改感兴趣。为了显示某个特定文件的历史,你只需要传入文件路径。比如说,下面这个命令返回所有和 foo.pybar.py 文件相关的提交:

    git log -- foo.py bar.py
    

    -- 告诉 git log 接下来的参数是文件路径而不是分支名。如果分支名和文件名不可能冲突,你可以省略 --

    按范围

    你可以传入范围来筛选提交。这个范围由下面这样的格式指定,其中 <since><until>是提交的引用:

    git log <since>..<until>
    

    这个命令在你使用分支引用作为参数时特别有用。这是显示两个分支之间区别最简单的方式。看看下面这个命令:

    git log master..feature
    

    其中的 master..feature 范围包含了在 feature 分支而不在 master分支中所有的提交。换句话说,这个命令可以看出从master 分支forkfeature 分支后发生了哪些变化。

    转载自Git log 高级用法, 若侵犯了作者权益,请联系我删除。

    相关文章

      网友评论

          本文标题:git log --grep 筛选(转)

          本文链接:https://www.haomeiwen.com/subject/ewrawxtx.html