包含做者和日期的git日誌的最短輸出

如何顯示(至少)此信息的git日誌輸出: html

* author
* commit date
* change

我但願每一個日誌條目壓縮到一行。 什麼是最短的格式? git

(嘗試過--format=oneline可是沒有顯示日期) app


#1樓

git log --pretty=format:"%H %an %ad"

使用--date=設置日期格式less

git log --pretty=format:"%H %an %ad" --date=short

#2樓

git log --pretty=format:"%h%x09%an%x09%ad%x09%s" svn

作了這個工做。 這輸出: spa

fbc3503 mads    Thu Dec 4 07:43:27 2008 +0000   show mobile if phone is null...   
  ec36490 jesper  Wed Nov 26 05:41:37 2008 +0000  Cleanup after [942]: Using timezon
  ae62afd tobias  Tue Nov 25 21:42:55 2008 +0000  Fixed #67 by adding time zone supp
  164be7e mads    Tue Nov 25 19:56:43 2008 +0000  fixed tests, and a 'unending appoi
  93f1526 jesper  Tue Nov 25 09:45:56 2008 +0000  adding time.ZONE.now as time zone 
  2f0f8c1 tobias  Tue Nov 25 03:07:02 2008 +0000  Timezone configured in environment
  a33c1dc jesper  Tue Nov 25 01:26:18 2008 +0000  updated to most recent will_pagina

stackoverflow問題啓發:「git log輸出像svn ls -v」 ,我發現我能夠添加我須要的確切參數。 日誌

要縮短日期(不顯示時間),請使用--date=short code

萬一你好奇不一樣的選擇是什麼:
%h =縮寫提交哈希
%x09 = tab(代碼9的字符)
%an =做者姓名
%ad =做者日期(格式尊重 - 日期=選項)
%s =主題
來自kernel.org/pub/software/scm/git/docs/git-log.html(PRETTY FORMATS部分)評論Vivek。 orm


#3樓

爲了顯示我已準備推送的提交,我作了 htm

git log remotes/trunk~4..HEAD --pretty=format:"%C(yellow)%h%C(white) %ad %aN%x09%d%x09%s" --date=short | awk -F'\t' '{gsub(/[, ]/,"",$2);gsub(/HEAD/, "\033[1;36mH\033[00m",$2);gsub(/master/, "\033[1;32mm\033[00m",$2);gsub(/trunk/, "\033[1;31mt\033[00m",$2);print $1 "\t" gensub(/([\(\)])/, "\033[0;33m\\1\033[00m","g",$2) $3}' | less -eiFRXS

輸出看起來像:

ef87da7 2013-01-17 haslers      (Hm)Fix NPE in Frobble
8f6d80f 2013-01-17 haslers      Refactor Frobble
815813b 2013-01-17 haslers      (t)Add Wibble to Frobble
3616373 2013-01-17 haslers      Add Foo to Frobble
3b5ccf0 2013-01-17 haslers      Add Bar to Frobble
a1db9ef 2013-01-17 haslers      Add Frobble Widget

第一列顯示爲黃色,而parentesis中的'H''m'和't'顯示HEAD,master和trunk,並以其一般的「--decorate」顏色顯示

這裏有換行符,因此你能夠看到它在作什麼:

git log remotes/trunk~4..HEAD --date=short
    --pretty=format:"%C(yellow)%h%C(white) %ad %aN%x09%d%x09%s"
    | awk -F'\t' '{
         gsub(/[, ]/,"",$2);
         gsub(/HEAD/, "\033[1;36mH\033[00m",$2);
         gsub(/master/, "\033[1;32mm\033[00m",$2);
         gsub(/trunk/, "\033[1;31mt\033[00m",$2);
         print $1 "\t" gensub(/([\(\)])/, "\033[0;33m\\1\033[00m","g",$2) $3}'

我有別名「上演」:

git config alias.staged '!git log remotes/trunk~4..HEAD --date=short --pretty=format:"%C(yellow)%h%C(white) %ad %aN%x09%d%x09%s" | awk -F"\t" "{gsub(/[, ]/,\"\",\$2);gsub(/HEAD/, \"\033[1;36mH\033[00m\",\$2);gsub(/master/, \"\033[1;32mm\033[00m\",\$2);gsub(/trunk/, \"\033[1;31mt\033[00m\",\$2);print \$1 \"\t\" gensub(/([\(\)])/, \"\033[0;33m\\\\\1\033[00m\",\"g\",\$2) \$3}"'

(有沒有更容易的方法來逃避這一點?找出須要逃避的東西有點棘手)


#4樓

全部上述建議都使用%s佔位符做爲主題。 我建議使用%B由於%s格式保留新行 ,多行提交消息顯示爲壓扁。

git log --pretty=format:"%h%x09%an%x09%ai%x09%B"

#5樓

使用預約義的git別名,即:

$ git work

按命令建立一次:

$ git config --global alias.work 'log --pretty=format:"%h%x09%an%x09%ad%x09%s"'

https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases

或者用圖表更多顏色:

$ git config --global alias.work 'log --pretty=format:"%C(yellow)%h %ar %C(auto)%d %Creset %s , %Cblue%cn" --graph --all'

在此輸入圖像描述

相關文章
相關標籤/搜索