21

次のような形式が必要です。

git log --decorate --graph --oneline --date-order

しかし、私もそれが必要です:

  1. 日付を含む (短い)
  2. 同じ色にする

私は試した:

git log --decorate --graph --oneline --date-order \
--date=short --pretty=format:"%h %ad %s"

ただし、読みにくく (色なし)、ブランチ/タグが含まれていません。


最も近い単純な解決策は次のとおりです(VonCに感謝します):

git log --graph --pretty=format:'%C(yellow)%h%Creset \
-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \
--abbrev-commit --date=short
4

5 に答える 5

16

あなたが試すことができます:

alias.lgb=log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=short --branches

色は違いますが、簡単に変えることができます。

例えば:

git log --graph --pretty=format:'%Cred%h -%d %s (%cr) <%an>%Creset' --abbrev-commit --date=short --branches
于 2011-09-15T11:36:50.187 に答える
6

「不可能」とは、簡単な方法がなく、自分でやらなければならないことを意味します。私は、実際には簡単な方法があるのに、いつも難しい方法で物事を作ることを心配しすぎていました。

これはbash + phpスクリプトです。sedで作ろうとしたのですが、だめでした。

このスクリプトに git-gd という名前を付けて、パス内の bin ディレクトリに配置し/usr/local/bin/、git:git gdまたはgit gd <options>

#!/bin/bash

GIT="/usr/local/bin/git"
PHP="/bin/php"
GIT_DATES="$GIT log --date=short --abbrev-commit --pretty=format:%C(yellow)%h_%C(green)[%ad]%Creset --branches --color=always $*"
#if you have have alias g
GIT_GRAPH="$GIT g --color=always"
#or
#GIT_GRAPH="$GIT log --decorate --graph --oneline --date-order --color=always"
PHP_SCRIPT='
  $exps = explode("\n", $_SERVER["argv"][1]);
  $lines = file("php://stdin");
  $s = array();
  $r=$s;
  foreach($exps as $exp){
   $exp = trim($exp);
   list($commit,)=explode("_", $exp);
   $s[] = $commit;
   $r[] = str_replace("_", " ", $exp);
  }
  foreach($lines as $line){
    $line = str_replace($s, $r, $line);
    echo $line ;
  }
  '

DATES=`$GIT_DATES`
$GIT_GRAPH $* |$PHP -r "$PHP_SCRIPT" -- "$DATES"

より簡単な解決策を少し待ち、自分の答えを受け入れます

于 2011-09-15T13:51:42.250 に答える
5

古いバージョンの git では、次のgit logように装飾を有効にするように構成できます。

git config --global log.decorate full
于 2012-03-23T17:47:31.497 に答える
2

さらに、git config に次のような 2 行を追加できます。

[format]
  pretty = %Cblue%h%Creset %Cgreen[%ar]%Creset (%an) %s 

これは、 git log と入力すると、常にフォーマットされることを意味します。

于 2013-07-16T14:44:59.643 に答える