2017-08-18 6 views
2

私はgit reflogのデフォルト出力を微調整したいが、私は最初にデフォルト出力を再現するためにフォーマット文字列を必要とする。具体的には、私は別のrefnamesの着色とのトラブルを抱えている:`git reflog`のデフォルト出力のフォーマット文字列は何ですか?

git-reflog

Gitリポジトリとのより多くの知識豊富誰かが私を助けることはできますか?

git reflog showは、少しについて--pretty=onelineを言うthe git log documentation、にあなたを送信する必要がありますgit log -g --abbrev-commit --pretty=oneline

の別名があるが、-g別名--walk-reflogs説明の下で重要なビットを隠します:

答えて

1

the git reflog documentationパー:

(明らかな理由により)oneline以外の形式では、これにより、出力には、reflogから取得された2行の余分な情報が含まれます。出力REFLOG指定子は、いくつかのルールに応じて、(そのエントリのタイムスタンプを有する)[email protected]{Nth}として(NthがREFLOGに逆時系列のインデックスである)または[email protected]{timestamp}として示すことができる:

  1. 場合開始点は[email protected]{Nth}と指定され、インデックス形式を示します。

  2. 開始点が[email protected]{now}と指定されている場合は、タイムスタンプ形式を表示します。

  3. どちらも使用されていないが、​​がコマンドラインで指定された場合は、​​で要求された形式でタイムスタンプを表示してください。

  4. それ以外の場合は、インデックス形式を表示してください。 --pretty=onelineの下

、コミットメッセージには同じライン上でこの情報が付いています。このオプションは--reverseと組み合わせることはできません。 git-reflog(1)も参照してください。

「開始点」これは暗示には、あなたのgit log -gコマンドで与えた REFLOGエントリです。あなたは1、のいずれかの形式を持っていないHEADからgit logデフォルトは、与えていないので、これはルール3または4に該当する場合:

git log --pretty=oneline -g [email protected]{now} 

は、明示的にルール2を使用していますが、:

git log --pretty=oneline -g [email protected]{0} 

明示的にルール1を使用します。

少しそれが言うか、言っていない、程度--pretty=onelineは、それはあなたが--abbrev-commitを使用するかどうかに応じて%H %gd %sまたは%h %gd %sとほぼ同等であることです。しかし、これもドキュメントから幾分欠けています。設定にを設定した場合 stdoutが対話型デバイスに行く場合、 %dも挿入されます。


"対話装置は、" Cライブラリisatty機能によって "TTY" に指定されているものです。

git reflog --format='%C(auto)%h %gd: %gs (%s)' 

色は%Cで変更することができます。

1

reflogのデフォルトのフォーマット文字列は次のようなものです。例えば、マゼンタの初期の黄色を変更するには:着色はANSI escape sequencesを使用して達成され、それらが正しく終端されなければならないので%C(reset)が絶対に必要であることを

git reflog --format='%C(magenta)%h%C(reset) %gd: %gs (%s)' 

は注意してください。あなたが骨抜きであればをgitコードで調べると、これらのシーケンスがどのように見えるかを確認できます。すべての可能なフォーマット文字列の場合

man git-logformat:<string>を参照してください。

· format:<string> 

     The format:<string> format allows you to specify which information you want to show. It works a little 
     bit like printf format, with the notable exception that you get a newline with %n instead of \n. 

     E.g, format:"The author of %h was %an, %ar%nThe title was >>%s<<%n" would show something like this: 

      The author of fe6e0ee was Junio C Hamano, 23 hours ago 
      The title was >>t4119: test autocomputing -p<n> for traditional diff input.<< 

     The placeholders are: 

     · %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 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/[email protected]{1} 

     · %gd: shortened reflog selector, e.g., [email protected]{1} 

     · %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 in color.branch.* config option; 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) 
+0

ああ、右、私は、%Cの色の部品を言及するのを忘れてしまいました。しかし、 '--pretty = oneline'という名前の他の' --pretty = 'フォーマットと同様に、固定された '%'ディレクティブのセットではキャプチャできません。フォーマットはアドホックコードで行われます。常に同等の%ディレクティブを持つとは限りません。これがOPのために何を意味するかは、正確に彼が出力として望むものに依存する。 – torek

関連する問題