git diff-tree
이 필요합니다. diff-format 페이지가 나타내는 내용에도 불구하고 diff-tree은 단일 트리 참조 (예 : 커밋 SHA1 또는 분기 이름)를 사용할 수 있으며 병합 커밋 인 경우에도 커밋의 모든 부모에 대한 비교를 수행합니다.
diff-format 페이지 출력 형식을 설명합니다. (그냥 같은 자식 쇼는 않습니다)하지만, 여기에 몇 가지 예입니다 : 우리가 --no-commit-id
와 커밋 SHA1의 인쇄를 억제하고, 보는 -r
를 지정한 다음
$ git diff-tree --no-commit-id -r -c HEAD
:100644 100644 163e1f7815c5ef7e371bfebd549d6e990a3faa6b 991c88a41f56a0b39dfee85046e6954731294ddb M Home.md
:100644 100644 d40bd92ec40e486fa4fdda3e8e2740bfb0138a99 160d2d470b9226ed58697b96523a5579ac0dbb9e M building/Tests.md
상위 디렉토리를 보는 대신 서브 디렉토리 (하위 트리)에 파일을 저장하십시오. 콜론으로 시작하는 출력 행은이 커밋에서 변경된 파일입니다. 두 개의 SHA1은 상위 커밋의 블롭 SHA1과 참조 된 커밋의 파일 내용에 해당하는 BLOB의 최종 SHA1입니다.
-c
은 병합의 경우 "결합 된"diff에 필요합니다. diff-tree는 어느 부모와도 다른 파일에 대한 항목을 만들도록 지시합니다. (즉에만 병합 과정 자체에서 변경 한 파일입니다.)
$ git diff-tree --no-commit-id -r -c 2a6c4947dd0dcee69e7aca1c3a0ef92d7e5260f9 # merge commit
::000000 100644 100644 0000000000000000000000000000000000000000 53650eaf781e1410d8bd6fa4af29748714b7f1d4 285def5637464597883c3f363d67783176f03c2e AM README.txt
::100644 100644 100644 e7f117c2b117dc3960250442732f0d6acfc212e6 e84b192b1e394efea15804f8de66fc0c7ee87ca7 5ca0469a65e886e56e5aedeb08359ea1627e28dd MM Home.md
병합 커밋은 각 부모에 해당하는 이상의 항목이있다. 포맷팅 및 제어 방법에 대한 자세한 내용은 diff-format 및 diff-tree 매뉴얼 페이지를 참조하십시오.