gitリポジトリのサブディレクトリのgitログ履歴を表示するにはどうすればよいですか?


228

このようなgitリポジトリがあるとしましょう。

foo/
  .git/
  A/
   ... big tree here
  B/
   ... big tree here

特定のディレクトリのログメッセージのみを表示するようにgit logに要求する方法はありますか?たとえば、foo / A内の変更されたファイルのコミットを確認したいだけですか?

回答:


242

ディレクトリからfoo/

  git log -- A

あなたは必要「 - 」分離すること<path>..から<since>..<until>refspecs。

# Show changes for src/nvfs
$ git log --oneline -- src/nvfs
d6f6b3b Changes for Mac OS X
803fcc3 Initial Commit

# Show all changes (one additional commit besides in src/nvfs).
$ git log --oneline
d6f6b3b Changes for Mac OS X
96cbb79 gitignore
803fcc3 Initial Commit

1
ところで、あなたはやって前に「foo」というfoldrerにとどまるべき「gitのログを- A B」
セルゲイLeyko

22
人スキムミルク-読書のために、このショーの中の変化A とは B、だけでなく、AOPが要求されるように
エイダン

1
@GoZoner、特定のフォルダー名が変更されたすべてのコミットを見つける方法はありますか?私はどのように、どこのフォルダを移動追い詰める必要はありませ好むので、フォルダが..周りに移動している可能性が
alpha_989

3
^^ AOPの要求に応じて、変更のみを表示するように更新されました。
GoZoner

現在のヘッドでディレクトリが削除された場合はどうなりますか?
アーロンフランケ

34

あなたがそれをグラフィカルに見たいなら、あなたは使うことができます

gitk -- foo/A

ここに画像の説明を入力してください


26

git logそれぞれのフォルダのパス名で使用できます:

git log A B

ログには、Aおよびで行われたコミットのみが表示されBます。私は通常--stat、物事を少しきれいにするために投入します。これは、迅速なコミットレビューに役立ちます。


26

入る

git log .

特定のディレクトリから、そのディレクトリへのコミットも提供します。


4
私にとってはうまくいきませんでした。特定のディレクトリに着陸し、git logを提供した後。ルートからすべてのコミットを取得しました。
AKS

1
私のために働く。git bashの使用
buckley

2

フォルダーが移動されたフォルダーへの変更を追跡するために、私は使い始めました:

git rev-list --all --pretty=oneline -- "*/foo/subfoo/*"

同じ名前の他のフォルダを取得するため、これは完全ではありませんが、一意である場合は機能するようです。


0

その他の回答では、変更されたファイルのみが表示されます。

git log -p DIR特定のサブディレクトリにあるすべての変更されたファイルの完全な差分が必要な場合は、非常に便利です。

例:特定のバージョン範囲のすべての詳細な変更を表示する

git log -p 8a5fb..HEAD -- A B

commit 62ad8c5d
Author: Scott Tiger
Date:   Mon Nov 27 14:25:29 2017 +0100

    My comment

...
@@ -216,6 +216,10 @@ public class MyClass {

+  Added
-  Deleted

1
この回答が質問にどのように関係するのか理解していません
Florian Leitgeb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.