Git log diff config高级进阶
Git 历史相关和 git config 高级进阶
前一段时间分享了一篇《更好的 git log》简要介绍怎么美化 git log 命令,其中提到了 alias命令,今天再继续谈谈 git相关, 看看如何通过配置自己的 git config 让自己的 git 用起来更顺手。
git log 进阶
在一行显示 git log
git log --pretty =oneline在一行显示 git log.
git log --oneline --stat ,显示每个文件的变化行数,其中后面跟的--start参数是用来统计哪些文件被改动,有多少行被改动。
git log --oneline --graph,则可以图形化地显示 branch 的变化(方便查看 merge 变化)。
查看不同时间段的 git log
git log --until=1.minute.ago // 一分钟之前的所有 log
git log --since=1.day.ago //一天之内的log
git log --since=1.hour.ago //一个小时之内的 log
git log --since=`.month.ago --until=2.weeks.ago //一个月之前到半个月之前的log
git log --since ==2013-08.01 --until=2013-09-07 //某个时间段的 log
如果你想更加个性化地设置 git log 输出的不同参数的颜色,可以使用如下命令
git log --pretty=format:"%h %ad- %s [%an]"
其中的参数对应的是
%ad author data // 日期
%an author name // 作者名
%cn committer name //提交者姓名
%h SHA hash // hash值
%s subject //commit的描述
%d ref names //对应的 branch 分支名
更多的选项可以使用git help log 来看看,如我在《更好的 git log》中提到的,你可以通过alias 来创建一个简洁的git lg 命令来定制自己喜欢的输出方案。
git diff 进阶
git diff 是用来比较版本之间的差异变化 balbalbala 之类的,哪里修改了,哪里添加了 balbalbala
git diff HEAD //与上次 commit 之间的差别(爸爸)
git diff HEAD^ //与上上次(爷爷)
git diff HEAD^^ //与上上上次(曾祖父)
git diff HEAD~5 //与前面第5次commit(好吧…祖先吧)
git diff HEAD^..HEAD //中间是两个点比较(爸爸)和(爷爷)的差别
git diff f5fdjsalfjdskaf..4fdklsajfdksaf //比较 两个不同 hash 值记录之间的不同
git diff master bird //比较 branch 之间的不同
git diff --since=1.week.ago --until=1.minute.ago //还可以根据时间来比较哦
git blame
如果你想要看看某一个文件的相关历史记录,可以使用git blame 命令。
如git blame index.html --data short

git config进阶
config 就是配置的意思,git config 字如其意,就是 git 的配置文件,git config 文件有三层。
第一层config是在系统层etc/gitconfig, 可以通过使用 git config --system来进行配置,此层gitcofnig 配置针对系统所有用户的分支都有效。
第二层是~/.gitconfig,针对某个用户有效,针对此层设置使用的是git config --global命令。
第三层是项目文件夹中的配置文件,比如说我有一个 project1的文件夹,project1/.git/config就是在这个 repo 中使用的 gitconfig 配置。直接使用git config 就能进行配置。
基础配置
git config --help,使用这个命令可以列出 git config 的帮助列表。
而使用git config --list,则可以显示你目前的 git config 配置。
用户信息配置
git config --global user.name "will luo" //
git config --global user.emal "i@luolei.org" //
颜色设置
git config --global color.ui true //
git 在终端显示会有颜色
color.*
如果你想针对不同的 git 命令输出不同的配色,你可以使用 color.[command-type] 命令。
color.branch
color.diff
color.interactive
color.status
以上参数都能设置true,false,always。
git config --global color.diff.meta "blue black bold"
这段代码的意思就是git diff 输出的「git 改变的信息(diff)」 以粗体、蓝色前景、黑色背景的形式展现。
能设置的颜色值包括normal, black, red, green, yellow, blue, magenta, cyan, white.,字体属性则有bold, dim, ul, blink, reverse.
ALIASES
git config --global alias.mylog "log --pretty=format:'%h %ad- %s [%an]' --graph "
git config --global --add alias.lol "log --graph --decorate --pretty=oneline --abbrev-commit --all"
这样就自定义git mylog,和git lol两个命令,至于是什么样的效果,大家就根据代码的意思领悟和学习一下吧。
对于我们日常常用的 git 命令,我们可以通过
git config --global alias.st status //status 缩写成 st
git config --global alias.co checkout //checkout 缩写成 co
git config --global alias.br branch //branch 缩写成 br
git config --global alias.ci commit //commit 缩写成 ci
大家可以根据自己的喜好来缩写,当然,到时候别忘了备份自己的 config 文件(可参考我的博文dotfiles新手教程)。
Git log diff config高级进阶的更多相关文章
- 问题: 查看某个文件的修改记录| git log 高级用法
参考文章: git查看某个文件的修改历史 5.3 Git log 高级用法 基本步骤 git log --pretty=oneline [文件名] git show [节点] git log 两周高级 ...
- git log的常见用法
git log 使用git log命令,什么参数都没有的话,会以下面的格式输出所有的日志(我当前的git仓库只有三个提交).如果日志特别多的话,在git bash中,按向下键来查看更多,按q键退出查看 ...
- 4. git log的常见用法
git log ======见https://blog.csdn.net/daguanjia11/article/details/73823617 +++++++++++++++++++++++ 使用 ...
- Git log、diff、config 进阶
前一段时间分享了一篇<更好的 git log>简要介绍怎么美化 git log 命令,其中提到了 alias命令,今天再继续谈谈 git相关, 看看如何通过配置自己的 git config ...
- Git log高级用法
格式化Log输出 首先,这篇文章会展示几种git log格式化输出的例子.大多数例子只是通过标记向git log请求或多或少的信息. 如果你不喜欢默认的git log格式,你可以用git config ...
- 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 内 ...
- [译]git log进阶
格式化log输出 oneline --oneline标记将每个commit压缩成一行. 默认情况下显示一个commit ID和commit描述的第一行. 输出如下: 0e25143 Merge bra ...
- git 查看对比的方法log diff
git shortlog 默认情况下,git shortlog 把输出按作者名字排序,但你可以传入 -n 选项来按每个作者提交数量排序. 1.有冲突时可以用 git status查看 2.通过git ...
- 2-具体学习Github---init add commit log diff
1.安装: 首先找到git的官网,内部有下载链接. 也可以用下面的,我的是win7的64位系统: 可以在此处下载:Git-2.13.0-64-bit.exe链接:http://pan.baidu.co ...
随机推荐
- MT【130】Heilbronn问题
(清华THUSSAT,多选题) 平面上 4 个不同点 \(P_1,P_2,P_3,P_4\),在每两个点之间连接线段得到 6 条线段. 记 \[L=\max_{1\leq i<j\leq 4}| ...
- 【刷题】BZOJ 1926 [Sdoi2010]粟粟的书架
Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Cormen 的文章.粟粟家中有一个 R行C 列的巨型书架,书 ...
- PHP是什么?
PHP是什么? PHP是一门后端动态解释型计算机高级语言,一般用来编写或者生成动态网页,主要负责数据的处理与渲染.(这里是指用PHP嵌入网页里面的形式,现在可以直接用一些JS的框架去渲染网页数据了,P ...
- elasticsearch5使用snapshot接口备份索引
数据备份是一个必须要考虑的问题,官网提供了 snapshot 接口来备份和恢复数据. 先来看看官方说明: 如果ES是集群,那么需要使用共享存储,支持的存储有: a.shared file system ...
- WinForm查询大数据界面假死,使用异步调用解决
用DataGridView无分页绑定一个几千条数据的查询,查询的时候界面直接卡死十几秒,用户体验非常不好,因此用异步操作解决界面卡死的问题原本场景:点击[查询]后,界面直接卡死优化场景:点击[查询]后 ...
- java 批量文件后缀重命名
import java.io.File; public class BatchFileSuffixRename { public static void main(String[] args) { / ...
- Zabbix应用一:Zabbix安装
1.准备zabbix依赖环境:LNMP 依赖包安装参考http://www.osyunwei.com/archives/10057.html. cmake安装mysql: cmake . -DCMAK ...
- Integer两种转int方法比较
方法一: Integer.parseInt(); 返回的是一个 int 的值. 方法二: new Integer.valueof(); 返回的是 Integer 的对象. new Integer.va ...
- python中高阶函数与装饰器(3)
>>> f = lambda x: x * x>>> f<function <lambda> at 0x101c6ef28> >> ...
- Kafka 0.8 Consumer处理逻辑
0.前言 客户端用法: kafka.javaapi.consumer.ConsumerConnector consumer = kafka.consumer.Consumer.createJavaCo ...