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


228

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

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
그건 그렇고, 당신은 "git log-A B"를하기 전에 "foo"폴더에 있어야합니다
Sergey Leyko

22
사람들 탈지 읽기,이 쇼의 변화 A B , 다만 A영업 이익은 요청에 따라
에이단

1
@ GoZoner, 특정 폴더 이름이 변경된 모든 커밋을 찾는 방법이 있습니까? 폴더가 움직일 수 있었기 때문에 폴더가 어떻게 그리고 어디로 이동했는지 추적하지 않아도됩니다.
alpha_989

3
^^ AOP 요청에 따라 변경 사항 만 표시하도록 업데이트되었습니다 .
GoZoner

현재 헤드에서 디렉토리가 삭제되면 어떻게됩니까?
Aaron Franke


26

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

git log A B

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


26

시작하다

git log .

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


4
나를 위해 일하지 않았다. 특정 디렉토리에 착륙하고 git log 제공 후. 루트에서 모든 커밋을 주었다.
AKS

1
나를 위해 작동합니다. git bash 사용
버클리

2

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

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

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


0

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

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

1
이 답변이 질문과 어떻게 관련되어 있는지 이해가되지 않습니다
Florian Leitgeb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.