git log

git log:
一、不带参数
    1.如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者、提交日期、和提交说明
    2.如果记录过多,则按Page Up、Page Down、↓、↑来控制显示
    3.按q退出历史记录列表

二、显示参数
-p:按补丁显示每个更新间的差异,比下一条- -stat命令信息更全
--stat:显示每次更新的修改文件的统计信息,每个提交都列出了修改过的文件,以及其中添加和移除的行数,并在最后列出所有增减行数小计
--shortstat:只显示--stat中最后的行数添加修改删除统计
--name-only:尽在已修改的提交信息后显示文件清单
--name-status:显示新增、修改和删除的文件清单
--abbrev-commit:仅显示SHA-1的前几个字符,而非所有的40个字符
--relative-date:使用较短的相对时间显示(例如:"two weeks ago")
--graph:显示ASCII图形表示的分支合并历史

三、筛选参数:
1.按数量:-n, 显示前n条log

2.按日期:--after/--since --before/--until
(1) 比如git log --after="2014-7-1”,显示2014年7月1号之后的commit(包含7月1号)
(2) 后边的日期还可以用相对时间表示,比如"1 week ago"和”yesterday",比如git log --after="yesterday"

3.按作者:
(1)--author="balfish", 显示balfish贡献的commit.注意:作者名不需要精确匹配,只需要包含就行了
(2)可以使用正则表达式,比如git log --author="John\|Mary”,搜索Marry和John贡献的commit
(3)这个--author不仅包含名还包含email, 所以你可以用这个搜索email

4.按commit描述
(1)git log --grep="JRA-224"
(2)可以传入-i用来忽略大小写
(3)如果想同时使用--grep和--author,必须在附加一个--all-match参数

5.按文件
--(空格)或[没有]
    比如:git log -- foo.py bar.py ,只返回和foo.py或bar.py相关的commit
    这里的--是告诉Git后面的参数是文件路径而不是branch的名字. 如果后面的文件路径不会和某个branch产生混淆, 你可以省略--,比如git log foo.py
    另外,后边的路径还支持正则,比如:git log  *install.md 是,指定项目路径下的所有以install.md结尾的文件的提交历史
    另外,文件名应该放到参数的最后位置,通常在前面加上--并用空格隔开表示是文件
    另外,git log file/ 查看file文件夹下所有文件的提交记录

6.按分支 --
    --branchName branchName为任意一个分支名字,查看某个分支上的提交记录
    需要放到参数中的最后位置处
    如果分支名与文件名相同,系统会提示错 误,可通过--选项来指定给定的参数是分支名还是文件名
        比如:在当前分支中有一个名为v1的文件,同时还存在一个名为v1的分支
        git log v1 -- 此时的v1代表的是分支名字(--后边是空的)
        git log -- v1 此时的v1代表的是名为v1的文件
        git log v1 -- v1 代表v1分支下的v1文件

7.按内容
-S"<string>"、-G"<string>"
    有时你想搜索和新增或删除某行代码相关的commit. 可以使用这条命令
    假设你想知道Hello, World!这句话是什么时候加入到项目里去的,可以用:git log -S"Hello,World!"
    另外:如果你想使用正则表达式去匹配而不是字符串, 那么你可以使用-G代替-S.
    这是一个非常有用的debug工具, 使用他你可以定位所有跟某行代码相关的commit. 甚至可以查看某行是什么时候被copy的, 什么时候移到另外一个文件中去的
    注:-S后没有"=",与查询内容之间也没有空格符

8.按范围
    git log <since>..<until>
        这个命令可以查看某个范围的commit
        这个命令非常有用当你使用branch做为range参数的时候. 能很方便的显示2个branch之间的不同
        比如:git log master..feature,master..feature这个range包含了在feature有而在master没有的所有commit,同样,如果是feature..master包含所有master有但是feature没有的commit
        另外,如果是三个点,表示或的意思:git log master...test 查询master或test分支中的提交记录

9.过滤掉merge commit

--no-merges
        默认情况下git log会输出merge commit.  你可以通过--no-merges标记来过滤掉merge commit,git log --no-merges
        另外,如果你只对merge commit感兴趣可以使用—merges,git log --merges

10.按commit
    git log commit:查询commit之前的记录,包含commit
    git log commit1 commit2:查询commit1与commit2之间的记录,包括commit1和commit2
    git log commit1..commit2:同上,但是不包括commit1
        其中,commit可以是提交哈希值的简写模式,也可以使用HEAD代替
            HEAD代表最后一次提交,HEAD^为最后一个提交的父提交,等同于HEAD~1; HEAD~2代表倒数第二次提交

时间: 2024-10-16 21:52:10

git log的相关文章

git log进阶

格式化log输出 oneline --oneline标记将每个commit压缩成一行. 默认情况下显示一个commit ID和commit描述的第一行. 输出如下: 0e25143 Merge branch 'feature' ad8621a Fix a bug in the feature 16b36c6 Add a new feature 23ad9ad Add the initial code base decorate 许多时候知道commit是和哪一个分支或tag关联的是非常有用的.

Git -&gt; git log笔记

显示提交关系图 git log --graph --oneline 显示最近的几条日志 git log -3 --pretty=oneline 显示每次提交的具体改动 git log -p -1 显示每次提交的变更概要 git log --state --oneline 定制输出 git log --pretty=raw -1 git log --pretty=fuller -1 git log --pretty=oneline -1Git -> git log笔记,布布扣,bubuko.com

git log 查看提交记录,参数:

git log 查看提交记录,参数:-n (n是一个正整数),查看最近n次的提交信息 $ git log -2 查看最近2次的提交历史记录 -- fileName fileName为任意文件名,查看指定文件的提交信息.(注:文件名应该放到参数的最后位置,通常在前面加上--并用空格隔开表示是文件.) $ git log file1 file2 查看file1文件file2文件的提交记录$ git log file/ 查看file文件夹下所有文件的提交记录 --branchName branchNa

Git log高级用法

格式化Log输出 首先,这篇文章会展示几种git log格式化输出的例子.大多数例子只是通过标记向git log请求或多或少的信息. 如果你不喜欢默认的git log格式,你可以用git config的别名功能来给你想要的格式创建一个快捷方式. Oneline --oneline标记把每一个提交压缩到了一行中.它默认只显示提交ID和提交信息的第一行.git log --oneline的输出一般是这样的: 0e25143 Merge branch 'feature' ad8621a Fix a b

python git log

# -*- coding: utf-8 -*- # created by vince67 Feb.2014 # [email protected] import re import os import subprocess def run(project_dir, date_from, date_to, search_key, filename):     bug_dic = {}     bug_branch_dic = {}     try:         os.chdir(project

git log 查看提交记录

1. git log 查看提交历史记录 2. git log --oneline  或者 git log --pretty=oneline 以精简模式显示 3. git log --graph 以图形模式显示 4. git log --stat 显示文件更改列表 5. git log --author= 'name' 显示某个作者的日志 6. git log -p filepath 查看某个文件的详细修改 7. git log -L start,end:filepath 查看某个文件某几行范围内

Git学习01 --git add, git commit , git log ,git status, git reset --hard, head

特点:Git极其强大的分支管理:分布式版本 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器.中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆.集中式版本控制系统最大的毛病就是必须联网才能工作. 使用Git 1.创建版本库 首先,选择一个合适的地方,创建一个空目录,通过git init命令把这个目录变成Git可以管理

git log 高级用法

转自:https://github.com/geeeeeeeeek/git-recipes/wiki/5.3-Git-log%E9%AB%98%E7%BA%A7%E7%94%A8%E6%B3%95 内容很详细.实用. 这是一篇在原文(BY atlassian)基础上演绎的译文.除非另行注明,页面上所有内容采用知识共享-署名(CC BY 2.5 AU)协议共享. 每一个版本控制系统的出现都是为了让你记录代码的变化.你可以看到项目的历史记录--谁贡献了什么.bug是什么时候引入的,还可以撤回有问题的

git log用法【转】

转自:http://www.cnblogs.com/gbyukg/archive/2011/12/12/2285419.html PHP技术交流群 170855791 git log 查看提交记录,参数:-n      (n是一个正整数),查看最近n次的提交信息 $ git log -2 查看最近2次的提交历史记录 -- fileName     fileName为任意文件名,查看指定文件的提交信息.(注:文件名应该放到参数的最后位置,通常在前面加上--并用空格隔开表示是文件.) $ git l