• [译]git log


    git log

    git log命令用来显示提交的快照. 能列出来你项目的历史, 能过滤和搜索你指定的一些修改. git status能让你检查工作目录和stage区的状态, git log只提供被commited到head的一些历史信息.

    用法

    git log
    

    使用默认格式展示这个项目的commit历史. 如果输出超过一屏, 可以使用空格键来展示下一屏, 或者按q推出.

    git log -n <limit>
    

    限制只展示最近<limit>条commit历史.   如果<limit>为3那么只显示最近的3次commit历史.

      

    git log --online
    

    压缩每个commit到一行. 

    git log --stat
    

    输出包括了git log的信息, 并且额外显示了哪些文件被修改了, 哪一行是新加的或者被删除了.

    git log -p
    

    有点类似于git log --state, 但是git log -p提供的信息更加详细, 他把修改的内容也给展现出来了.

    git log --author="<pattern>"
    

    搜索指定作者的commit. <pattern>可以是正则表达式.

    git log --grep="<pattern>"
    

    搜索commit描述匹配<pattern>的commit. <pattern>同样可以是正则表达式.

    git log <since>..<until>
    

    显示<since>到<until>之间的commit. <since>和<until>这两个参数可以是commit ID, branch名字, HEAD.

    git log <file>
    

    只显示指定文件的commit.

    git log --graph --decorate -- online
    

    这个非常用用. --graph会在最左边输出一个基于文本的符号(为了好看, 或者分类).

    --decorate会把branch的名字和tag的名字也显示出来.

    --online会把每个commit信息压缩成一行.

    讨论

    commit 3157ee3718e180a9476bf2e5cab8e3f1e78a73b7
    Author: John Smith
    

    第一行commit后面的40个字符是代表这一次commit的SHA-1校验码, 他是唯一的. 这个校验码有两个用途. 第一, 确保commit的完整--如果他被污染了, commit会生成一个不同的校验码. 第二, 作为commmit的一个唯一的ID号.

    这个ID能在一些命令中使用, 例如git log <since>..<untile>(git log 3157e..5ab91). 

    ~符号用来表示一个相对于某个commit之前的相对位置的commit. 例如, 3157e~1表示在3157e之前的一个commit, HEAD~3表示当前commit之前的第三个commit.

    例子

    option可以组合使用.

    git log --author="John Smith" -p hello.py
    

    完整显示John Smith对hello.py这个文件所做的修改.

    ..符号可用于比较branch. 下面的例子展示了some-feature中有但是master中没有的commit

    git log --oneline master..some-feature
    

      

  • 相关阅读:
    如何给发票抬头增加页签
    记录激活SAP SMTP服务过程
    反射
    乱码问题
    使用idea的常用的技巧
    解决double的值相加的问题
    代理模式之静态代理
    foreach的真面目
    记录java的面试的每一个瞬间
    变量的经典
  • 原文地址:https://www.cnblogs.com/irocker/p/git-log.html
Copyright © 2020-2023  润新知