どのようにしてgitログ出力を(少なくとも)この情報と共に表示することができますか:
* author
* commit date
* change
ログエントリごとに1行に圧縮したい。そのための最短フォーマットは何ですか?
(--format=oneline
を試しましたが、日付は表示されません)
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
仕事をしました。これは出力します:
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 question: "svn ls -vのようなgitログ出力" に触発されて、私は必要なパラメータを正確に追加できることを知りました。
日付を短くする(時間を表示しない)には--date=short
を使います。
あなたが異なるオプションが何であるかについて興味があったならば:%h
=コミットハッシュの短縮形%x09
= tab(コード9の文字)%an
=著者名%ad
=作成者の日付(形式は--date =オプションを考慮しています)%s
=件名
kernel.org/pub/software/scm/git/docs/git-log.html (PRETTY FORMATSセクション)からVivekのコメント。
git log --pretty=format:"%H %an %ad"
日付フォーマットを設定するには--date=
を使用してください
git log --pretty=format:"%H %an %ad" --date=short
tigはgit logコマンドを使用する代わりになる可能性があり、主要なオープンソース* nixディストリビューションで利用可能です。
次のようにdebianまたはubuntをインストールして実行します。
$ Sudo apt-get 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%)
マークダウンはテキストの色付けをサポートしていないので、:column 1:blue;を想像してください。列2:緑色。列3:デフォルトのテキスト色最後の行、強調表示されています。終了するにはQまたはqを押してください。
tig
はカラム不規則なエッジなしを正当化します。これはASCIIタブ(%x09)では保証されていません。
短い日付フォーマット大文字の場合D(注:小文字のdは差分ビューを開きます。)〜/ .tigrcにshow-date = short
を追加して永続的に設定します。 ;または.git/configureまたは〜/ .gitconfigの[tig]
セクションにあります。
全体の変更を見るには:
Tigはgitとは別のもので、明らかに* nix特有のものなので、おそらくWindowsにインストールするにはcygwinが必要です。しかし、Fedoraの場合、インストールコマンドは$ su
、(enter root password)
、# yum install tig
であると思います。 freebsdには% su
、(enter root password)
、# pkg_add -r tig
をお試しください。
ちなみに、tigはログの簡単な表示以上のものに適しています。 Screenshots & Manual
git log --pretty=format:'%h %ad %s (%an)' --date=short
または
git log --pretty=format:'%h %ad %s | %an' --date=short
cdunn2001の答えを頼りにする:Jesperとknittlのように、私は作者のe = mailを失い、作者の名前だけを含めます。いい案!)。ただし、著者名の左揃えの列を別にする代わりに、コマンドの最後にそのフラグを括弧で囲むか、パイプでオフセットします。 (実際には、出力を読むときの視覚的な助けになる文字ならどれでもかまいませんが、出力をディレクトリなどと混同しないようにするために、スラッシュを前後に避けても意味があります。)
出力例:
6fdd155 2015-08-10 Fixes casting error in doSave | John Doe
c4f4032 2015-08-10 Fix for IE save. Add help button. | Jane
29a24a6 2015-08-10 Fixes bug in Course | Mac
定義済みのgitエイリアスを使用してください。
$ git work
コマンドによって1回作成されます。
$ 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'
git log --pretty=format:'%h %ad %s%x09%ae' --date=short
結果:
e17bae5 2011-09-30 Integrate from development -> main [email protected]
eaead2c 2011-09-30 More stuff that is not worth mentioning [email protected]
eb6a336 2011-09-22 Merge branch 'freebase' into development [email protected]
定幅のものが最初です。最も重要ではない部分 - 電子メールドメイン - は最後で、フィルタリングが簡単です。
私がプッシュする準備ができている私が上演したコミットを示すために
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
最初の列が黄色で表示され、文字列の 'H'、 'm'、 't'がHEAD、マスター、トランクを表示し、通常の "--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}"'
(それを回避するためのもっと簡単な方法はありますか?エスケープする必要があるものを解決するのは少しトリッキーでした)
上記のすべての提案では、件名に%s
プレースホルダーを使用しています。 %B
のフォーマット 新しい行は保持されます と複数行のコミットメッセージがつぶれて表示されるため、%s
を使用することをお勧めします。
git log --pretty=format:"%h%x09%an%x09%ai%x09%B"
プロジェクトフォルダでこれを実行します。
$ 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