1.命令行中查看日志

git log

默认是显示所有的日志信息,之前出来的界面显示的日志,很少。

最后发现,只需要使用键盘上向下键↓,就可以继续浏览更多的日志

空格键,可以翻页浏览日志。

向左←  向右 →  的箭头,可以水平移动查看日志

2.将日志按照格式导出到文件中

git log --pretty=format:'%h was %an, %ar, message: %s' > log.log

参考资料:Git log output log file

3.修改日志  [tortoisegit的图形界面已经支持]

最近一次commit的修改

git commit --amend

如果需要批量修改日志,参考这篇文章git批量修改提交历史     官方文档

假设现在的提交为C1<--C2<--C3

如果需要修改C3和C2,那么使用如下命令

Administrator@LUJUNTAO /d/Colleague/JianQiang/TianJin/ZITaker (master)
$ git rebase --interactive HEAD~2

显示出这个

pick aa28b20 add NPOIExcel      //C2
pick c8c01a0 add Hydraumatic project   //C3

假设我们需要修改的是C2,

那么做出如下修改:

edit aa28b20 add NPOIExcel      //C2       把pick改为edit
pick c8c01a0 add Hydraumatic project   //C3

最后退出vim编辑器,使用wq退出

Successfully rebased and updated refs/heads/master.

然后使用git commit --amend

再使用git rebase --continue

4.查看某一个目录的日志

http://stackoverflow.com/questions/16343659/how-to-show-git-log-history-for-a-sub-directory-of-a-git-repo

$ git log --pretty=format:'%h was %an, %ar, message: %s' ZITaker  > log.log

5.修改某一个commit的作者和提交时间 [TortoiseGit的图形界面已经支持]

http://stackoverflow.com/questions/454734/how-can-one-change-the-timestamp-of-an-old-commit-in-git

$ git commit --amend --reset-author --no-edit  //这个操作会将电脑当前时间作为最后一次commit的提交时间

如果需要处理多个commit的提交时间的话,那就创建一个临时分支,temp。将temp分支reset到你需要修改提交时间的那个commit上。然后再使用上面的命令

已经修改了“调整历史数据的查询...”的commit。

然后需要将代码微调这个cherrypick到temp分支。重复上面的操作。 【同时记得修改系统时间】

也有支持批量处理的,用的脚本,我看不懂

http://giantdorks.org/alain/how-to-reset-date-timestamps-for-one-or-more-git-commits/

6.git shortlog

git shortlog -sn  按照提交的commit数量进行统计

git shortlog -sn --since="7 weeks" --until="1 weeks"  对某一个时间段进行统计

7.Walk Behavior

https://tortoisegit.org/docs/tortoisegit/tgit-dug-showlog.html

可以clone https://github.com/tart/tartJS 来查看不同的Behavior有什么效果

Walk Behaviour → First Parent just follow up first parent commit. This will help understand overwhole history.

Walk Behaviour → No merges Skips all merge points.

Walk Behaviour → Follow renames This is available to a single file only, which tracks renames. Otherwise, the log list stops at the commit that the current filename introduced.

Walk Behaviour → Compressed Graph The log graph is simplified to include merge points, commits with references, and possibly other commits.

Walk Behaviour → Show labelled commits only The log graph is simplified to include commits with references only.

git日志的查看与修改的更多相关文章

  1. Git 提交修改内容和查看被修改的内容

    我们将仓库里的readme.txt文件修改一下,改成如下内容: Git is a distributed version control systemGit is free software. 运行g ...

  2. git教程: 查看文件状态与修改内容

    转载:时光机穿梭 我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed ...

  3. Git以及github的使用方法(三),git status查看工作区的状态,git diff查看具体修改内容

    我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed version c ...

  4. Git版本控制:Git查阅、撤销文件修改和撤销文件追踪

    http://blog.csdn.net/pipisorry/article/details/47867097 查看文件的修改历史 git log --pretty=oneline 文件名 # 显示修 ...

  5. git学习笔记——查看git历史记录

    1.查看Git日志: 命令:git log 默认不加参数,git日志会按照最新的日期从上往下显示 参数:-p 显示版本间的代码差异 -数字 显示部分的提交 -哈希值 显示指定的版本 2.指定查找范围: ...

  6. Git版本回退和撤销修改

    版本回退: 在实际工作中,我们会不断对文件进行修改,然后不断提交修改到版本库里,一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失. ...

  7. git stash 暂存当前修改

    当我们在开发项目的时候,突然来一个变更需要修改,我们除了将当前项目提交(commit)后切换(checkout) 到其他分支外,我们还可以先将当前的修改暂存(stash)起来,然后再切换(checko ...

  8. Git分支操作——查看、新建、删除、提交、合并

    查看分支 1 查看本地分支 $ git branch   2 查看远程分支 $ git branch -r     创建分支 1 创建本地分支 $ git branch branchName 2 切换 ...

  9. git使用之放弃本地修改

    一,未使用 git add 缓存代码时. 可以使用 git checkout  --  filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “-- ...

随机推荐

  1. 配置toad进行导入导出数据库操作

    最近需要对oracle进行导入导出操作,于是研究使用toad进行导入导出oracle数据库操作,现稍作记录. oracle的导入导出不管是否使用toad还是pl/sql工具进行操作,实际上最终都是通过 ...

  2. 将应用程序中的一些参数写到xml配置文件中

    最近碰到一个问题,需要将程序中的一些基本参数写到xml文件中,虽然网上有好多现成的代码,但是觉得对xml不熟悉,果断就研究了一下.先说一下大体思路吧,我设计了一个用来读取和回填的类,然后定义了一个接口 ...

  3. [JS] JavascriptHelp (转载)

    using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...

  4. C#有关 字符串方法的使用

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  5. 三种C#.net生成静态页面的方法

    ASP.NET生成静态页面方法主要有三种   第一种方法:向服务器的动态页面发送请求,获取页面的html代码.这种方法缺点显而易见:速度慢.另外如果请求的动态页面有验证控件的话,返回的html页面却无 ...

  6. POJ 1185 炮兵阵地(动态规划+状态压缩)

    炮兵阵地 Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原( ...

  7. Sdut 2151 Phone Numbers (山东省ACM第一届省赛题 A)

    题目描述 We know thatif a phone number A is another phone number B's prefix, B is not able to becalled. ...

  8. VS2008/MFC —常用控件使用总结 转载

    在公司培训期间,经理给了我们没人10个界面草图,让我们在VS2008下使用MFC设计,因为在经理的帮助和自己的努力下,终于在三天时间内完成,现在就根据在这三天 时间里所用到的控件做出如下总结: 1.D ...

  9. JS操作SELECT方法

    1.判断select选项中 是否存在Value="paraValue"的Item2.向select选项中 加入一个Item3.从select选项中 删除一个Item4.修改sele ...

  10. 使用pyinstaller 2.1将python打包并添加版本信息和图标

    最近用 wxpython写了一个小的脚本,因为想要发布给没有装python和wxpython的人使用,遂决定使用pyinstaller 2.1进行打包. 其中遇到几个问题: 1,给打包的文件添加图标 ...