我如何用(至少)这些信息显示git日志输出:
* author
* commit date
* change
我想把它压缩到每个日志条目一行。最短的格式是什么?
(try——format=oneline,但不显示日期)
我如何用(至少)这些信息显示git日志输出:
* author
* commit date
* change
我想把它压缩到每个日志条目一行。最短的格式是什么?
(try——format=oneline,但不显示日期)
当前回答
Tig可能是git log命令的替代品,在主要的开源*nix发行版中可用。
在debian或ubuntu上尝试按以下方式安装和运行:
$ sudo apt-get install tig
对于mac用户,brew可以拯救他们:
$ brew install tig
(安装tig)
$ tig
(日志在页导航中显示如下,当前提交的散列显示在底部)
2010-03-17 01:07 ndesigner changes to sponsors list
2010-03-17 00:19 rcoder Raise 404 when an invalid year is specified.
2010-03-17 00:06 rcoder Sponsors page now shows sponsors' level.
-------------------------- skip some lines ---------------------------------
[main] 531f35e925f53adeb2146dcfc9c6a6ef24e93619 - commit 1 of 32 (100%)
由于markdown不支持文本着色,想象一下:列1:蓝色;第二栏:绿色;第3列:默认文本颜色。最后一行,高亮显示。按Q或Q退出。
Tig对没有粗糙边缘的列进行了校正,而ASCII制表符(%x09)并不能保证这一点。
对于短日期格式,请键入大写D(注意:小写D打开diff视图)。通过在~/.tigrc中添加show-date = short来永久配置它;或者在.git/configure或~/.gitconfig的[tig]部分中。
看到整个变化:
回车。一个子窗格将在窗口的下半部分打开。 使用k, j键滚动子窗格中的更改。 同时,使用上、下键从一个提交移动到另一个提交。
由于tig与git是分开的,而且显然是*nix专用的,它可能需要cygwin才能安装在windows上。但是对于fedora,我相信安装命令是$ su,(输入root密码),# yum install tig。对于freebsd尝试% su,(输入root密码),# pkg_add -r tig。
顺便说一下,tig的好处不仅仅是快速查看日志: 截图& 手册
其他回答
git --no-pager log --pretty=tformat:"%C(yellow)%h %C(cyan)%ad %Cblue%an%C(auto)%d %Creset%s" --graph --date=format:"%Y-%m-%d %H:%M" -25
我使用别名
alias gitlog='git --no-pager log --pretty=tformat:"%C(yellow)%h %C(cyan)%ad %Cblue%an%C(auto)%d %Creset%s" --graph --date=format:"%Y-%m-%d %H:%M" -25'
区别:我使用tformat和isodate,不带秒和时区,使用——no-page你会看到颜色
前面提到的所有建议都使用%s占位符作为主题。我建议使用%B,因为%s格式保留新行,多行提交消息显示被压扁。
git log --pretty=format:"%h%x09%an%x09%ai%x09%B"
看起来这就是你想要的:
git log --pretty=" %C(reset)%ad %C(Cyan)%an: %C(reset)%s"
(个人注意,你应该总是有提交哈希..)
git log --pretty=format:'%h %ad %s%x09%ae' --date=short
结果:
e17bae5 2011-09-30 Integrate from development -> main nixon@whitehouse.gov
eaead2c 2011-09-30 More stuff that is not worth mentioning bgates@apple.com
eb6a336 2011-09-22 Merge branch 'freebase' into development jobs@nirvana.org
首先是固定宽度的内容。最不重要的部分——电子邮件域——是最后一个很容易过滤的部分。
在项目文件夹中运行:
$ git log --pretty=format:"%C(yellow)%h %ar %C(auto)%d %Creset %s , %Cblue%cn" --graph --all
如果你愿意,添加这一行到你的~/.gitconfig:
[alias]
...
list = log --pretty=format:\"%C(yellow)%h %ar %C(auto)%d %Creset %s, %Cblue%cn\" --graph --all