私はコンソールに完全なコミットメッセージを出力しようとしていますが、メッセージを取得できますが、完全なメッセージを表示するには、コンソールウィンドウのサイズを変更してさらに表示する必要があります。 WindowsでCygwinを使用しています。
私が使用しているコマンドはgit log --pretty=full
。
ポケットベルの救助
git log | less
Lessのエイリアスに-Sがないことを確認してください
また、コミットメッセージの幅を制限することは一般的に良い習慣と考えられています。一般的な標準は78文字(IIRC)であり、ほとんどのテキストエディターはそのようなスタイルルール(メッセージの自動フォーマット)を確保するのに良い仕事をしています。
Update:参照データポイントとして、 git-config
リスト :
gui.commitmsgwidth
Defines how wide the commit message window is in the git-gui(1). "75" is the default.
git log
はコミットメッセージの折り返しをサポートしていません。そのため、一般的な方法はコミットメッセージを約72文字に折り返すことです。詳細については this answer を参照してください。
ただし、矢印キーを使用して左右にスクロールすると、行の残りの部分が表示されます。あなたはできる?
FWIW、Gitに変更を提案します。これにより、log
などがコミットメッセージをラップできるようになります(事前にラップする必要がない場合)。 gitメーリングリストで here および here を見て、どこに行くかを確認してください。
使用することもできます
git log --format=<format> [hash|HEAD]
どこ <format>
は次のいずれかです。
プレースホルダーは次のとおりです。
# see man git-log PRETTY FORMATS section
%H: commit hash
%h: abbreviated commit hash
%T: tree hash
%t: abbreviated tree hash
%P: parent hashes
%p: abbreviated parent hashes
%an: author name
%aN: author name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%ae: author email
%aE: author email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%ad: author date (format respects --date= option)
%aD: author date, RFC2822 style
%ar: author date, relative
%at: author date, UNIX timestamp
%ai: author date, ISO 8601-like format
%aI: author date, strict ISO 8601 format
%cn: committer name
%cN: committer name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%ce: committer email
%cE: committer email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%cd: committer date (format respects --date= option)
%cD: committer date, RFC2822 style
%cr: committer date, relative
%ct: committer date, UNIX timestamp
%ci: committer date, ISO 8601-like format
%cI: committer date, strict ISO 8601 format
%d: ref names, like the --decorate option of git-log(1)
%D: ref names without the " (", ")" wrapping.
%e: encoding
%s: subject
%f: sanitized subject line, suitable for a filename
%b: body
%B: raw body (unwrapped subject and body)
%N: commit notes
%GG: raw verification message from GPG for a signed commit
%G?: show "G" for a good (valid) signature, "B" for a bad signature, "U" for a good signature with unknown validity, "X" for a good signature that has expired, "Y" for a good signature made by an expired key, "R"
for a good signature made by a revoked key, "E" if the signature cannot be checked (e.g. missing key) and "N" for no signature
%GS: show the name of the signer for a signed commit
%GK: show the key used to sign a signed commit
%Gd: reflog selector, e.g., refs/stash@{1} or refs/stash@{2 minutes ago}; the format follows the rules described for the -g option. The portion before the @ is the refname as given on the command line (so git log
-g refs/heads/master would yield refs/heads/master@{0}).
%Gd: shortened reflog selector; same as %Gd, but the refname portion is shortened for human readability (so refs/heads/master becomes just master).
%gn: reflog identity name
%gN: reflog identity name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%ge: reflog identity email
%gE: reflog identity email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%gs: reflog subject
%Cred: switch color to red
%Cgreen: switch color to green
%Cblue: switch color to blue
%Creset: reset color
%C(...): color specification, as described under Values in the "CONFIGURATION FILE" section of git-config(1); adding auto, at the beginning will emit color only when colors are enabled for log output (by
color.diff, color.ui, or --color, and respecting the auto settings of the former if we are going to a terminal). auto alone (i.e. %C(auto)) will turn on auto coloring on the next placeholders until the color is
switched again.
%m: left (<), right (>) or boundary (-) mark
%n: newline
%%: a raw %
%x00: print a byte from a hex code
%w([<w>[,<i1>[,<i2>]]]): switch line wrapping, like the -w option of git-shortlog(1).
%<(<N>[,trunc|ltrunc|mtrunc]): make the next placeholder take at least N columns, padding spaces on the right if necessary. Optionally truncate at the beginning (ltrunc), the middle (mtrunc) or the end (trunc) if
the output is longer than N columns. Note that truncating only works correctly with N >= 2.
%<|(<N>): make the next placeholder take at least until Nth columns, padding spaces on the right if necessary
%>(<N>), %>|(<N>): similar to %<(<N>), %<|(<N>) respectively, but padding spaces on the left
%>>(<N>), %>>|(<N>): similar to %>(<N>), %>|(<N>) respectively, except that if the next placeholder takes more spaces than given and there are spaces on its left, use those spaces
%><(<N>), %><|(<N>): similar to % <(<N>), %<|(<N>) respectively, but padding both sides (i.e. the text is centered) -%(trailers): display the trailers of the body as interpreted by git-interpret-trailers(1)
これにより、抽出対象をより詳細に制御できます。例えば、私のユースケースでは、実際のコミットメッセージに興味があるので、ポストコミットフックを実行できます。
# get the raw body of the commit
git log --format=%B HEAD
git log --pretty=(medium,full,fuller)
を使用する場合(pretty=format
を使用しない場合を意味する)をさらに見る別のオプションは、各ログメッセージの先頭に追加されたスペースインデント(4スペース)を削除する機能です(git 2.9 、2016年6月):
commit fe37a9c 、 commit 0893eec (2016年3月29日)by Junio C Hamano(gitster
) を参照してください。
Linus Torvalds(torvalds
) による commit 7cc13c7 (2016年3月16日)を参照してください。
( C浜野順夫-gitster
- in commit cafef3d 、2016年4月13日)
pretty
:選択したプリティ形式に対してデフォルトで--expand-tabs
を有効にします「
git log --pretty={medium,full,fuller}
」および「git log
」はデフォルトでログメッセージの前に4つのスペースを追加するため、これらのフォーマットに対してデフォルトで新しい「expand-tabs
」機能を有効にすることは理にかなっています。--no-expand-tabs
オプションを追加して、新しいデフォルトを上書きします。
--expand-tabs=<n>:
--expand-tabs:
--no-expand-tabs:
出力に表示する前に、ログメッセージのタブ展開( '
<n>
'の倍数である次の表示列を埋めるのに十分なスペースで各タブを置き換えます)を実行します。--expand-tabs
は--expand-tabs=8
の省略形であり、--no-expand-tabs
は--expand-tabs=0
の省略形で、タブの展開を無効にします。