git を使用してサブディレクトリ内の特定のファイル拡張子に関連するすべてのログを表示する 質問する

git を使用してサブディレクトリ内の特定のファイル拡張子に関連するすべてのログを表示する 質問する

リポジトリの履歴内のコミットを表示しようとしていますが、特定の拡張子を持つファイルのみを表示したいと考えています。

ディレクトリ構造が次の場合:

$ tree
.
├── a.txt
├── b
└── subdir
    ├── c.txt
    └── d

これが完全な履歴です:

$ git log --name-only --oneline 
a166980 4
subdir/d
1a1eec6 3
subdir/c.txt
bc6a027 2
b
f8d4414 1
a.txt

.txt 拡張子のファイルのログを表示する場合:

$ git log --oneline *.txt
f8d4414 1

現在のディレクトリにあるファイルのみを返します。サブディレクトリにあるファイルは返しません。現在のディレクトリ内にある可能性のあるすべてのサブディレクトリを含めたいと思います。

私も試しました:

$ git log --oneline */*.txt
1a1eec6 3

そして:

$ git log --oneline *.txt */*.txt
1a1eec6 3
f8d4414 1

これはこのケースでは有効ですが、より一般的なケースでは実用的ではありません。

そして:

$ git log --oneline HEAD -- *.txt
f8d4414 1

成功しませんでした。

ベストアンサー1

試す:

git log --oneline -- '*.txt'

--、位置引数のみが続くことを示すために使用されます。 は、'*.txt'現在のディレクトリから下のすべてのフォルダを検索します。

あるいは、サブディレクトリで検索を開始して結果を制限することもできます (例: ) -- 'sub/*.txt'

おすすめ記事