「不可能」とは、簡単な方法がなく、自分でやらなければならないことを意味します。私は、実際には簡単な方法があるのに、いつも難しい方法で物事を作ることを心配しすぎていました。
これは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"
より簡単な解決策を少し待ち、自分の答えを受け入れます