1

私はgitの初心者です。2つのブランチまたはタグ間の差分を生成して、2つの間で変更されたファイルのリストを取得し、このファイルのリストを[1行に1つ](他の詳細とともに)「チェンジリスト. TXT"

基本的に、これは出力ファイルに必要な形式の一種です。

[AbbrvHash1] [AbbrvHash2] [FullHash1] [FullHash2] [TypeOfChange] [FileName] [CommitComment(AbbrvHash1のコメントの最初の14文字のみ)] [Hash1のコミット日時] [コミッターID]

1 行に 9 個の情報があり、AbbrvHash1 ごとに並べ替えられます

git「diff-tree」と「log」を使ってみました。個別に、彼らは部分的な情報を提供します。上記の出力を得るために、diff-tree からの 2 つの出力をマージして 1 つのフライにログインする方法を確認しようとしています。

何かご意見は?

4

1 に答える 1

0

必要なすべての情報はgit show--pretty=format:<string>オプションを使用して抽出できます。

たとえば、特定の treeish のハッシュのみを表示するには、この場合は次のようにしHEADます。

git show -s HEAD --pretty="%H"

通常-s出力される差分出力を抑制することに注意してください。これはオプションの省略形です。show--pretty="<string>"--pretty=format:<string>

必要なデータについては、次のコマンドでスクリプトをベースにすることができます。

git show --name-status <treeish> --pretty="%H %h %P %p %ce %at"

上記は印刷されます:

  • フルハッシュ
  • 短いハッシュ
  • 完全な親ハッシュ
  • 短い親ハッシュ
  • ユーザーの電子メール
  • コミットのUNIXタイムスタンプ
  • 2 つの改行
  • このコミットで変更されたファイルのリスト。形式は次のようになります。git status --short

唯一欠けている部分はコミットメッセージです。これは次のコマンドで単独で出力できます:

git show -s <treeish> --pretty="%B"

ファイル名として使用できるように、件名行をサニタイズする別の形式もあります。

git show -s <treeish> --pretty="%f"

さまざまなオプションはすべてドキュメントに記載されていgit showます。「PRETTY FORMATS」セクションを探してください。

于 2012-12-26T21:52:31.187 に答える