git repo의 하위 디렉토리에 대한 git log history를 표시하는 방법은 무엇입니까?

이렇게 보이는 git repo가 ​​있다고 가정 해 봅시다.

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

git log에게 특정 디렉토리에 대한 로그 메시지 만 표시하도록 요청하는 방법이 있습니까? 예를 들어 foo / A에서만 터치 파일을 커밋하는 것을보고 싶습니다.



답변

디렉토리 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

답변

그래픽으로보고 싶다면

gitk -- foo/A


답변

git log각 폴더의 경로 이름과 함께 사용할 수 있습니다 .

git log A B

로그에는 A및 에서 이루어진 커밋 만 표시됩니다 B. 나는 보통 --stat물건을 조금 더 예쁘게 만들기 위해 던져서 빠른 커밋 검토에 도움이됩니다.


답변

시작하다

git log .

특정 디렉토리에서 해당 디렉토리에 커밋도 제공합니다.


답변

폴더가 이동 한 폴더의 변경 사항을 추적하기 위해 다음을 사용하기 시작했습니다.

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

이름이 같은 다른 폴더를 가져 오기 때문에 완벽하지는 않지만 고유 한 경우 작동하는 것 같습니다.


답변

다른 답변은 변경된 파일 만 표시합니다.

git log -p DIR특정 서브 디렉토리에서 변경된 모든 파일 의 전체 diff 가 필요한 경우 매우 유용합니다 .

예 : 특정 버전 범위의 모든 세부 변경 사항 표시

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