단일 명령을 통해 커밋 ID 세부 정보와 함께 파일의 diff 세부 정보를 얻을 수있는 방법이 있습니까? 현재 "git diff tag1..tag2"는 두 태그 사이의 전체 코드 변경을 제공하지만 커밋 ID 및 커밋 이유는 제공하지 않습니다. "자식 로그"를 사용할 때 두 태그를 비교할 때 걱정하지 않는 변경 사항을 전체 커밋 변경으로 제공합니다.단일 명령으로 커밋 변경과 함께 git diff를 얻는 방법은 무엇입니까?
10
A
답변
16
하지만 이러한 변화는 내가 같은 DIFF 파일 내가 여기에 약간의 혼란이 있다고 생각
에서 원하는 ID를 커밋 커밋 이유가있다. git-diff는 하나의 커밋과 다른 커밋 사이의 차이를 출력합니다. 그 차이는 커밋 하나만이 아니며, 지정한 범위의 일련의 커밋을 나타냅니다 (예제에서 662a1fa..64f9766). 따라서 여러 커밋 ID와 메시지, 태그가 멀리 떨어져있는 경우 수천 개가 될 수도 있습니다.
git diff가 관련된 모든 커밋 메시지를 출력하는 경우 diff의 어느 부분이 각 커밋 ID 및 커밋 메시지와 관련되어 있는지 알려주지 못할 수 있습니다. 이것이 git log가 존재하는 이유입니다.
힘내 로그는 지정한 범위에서 차례대로 각 커밋을 표시하므로 커밋 메시지가 표시됩니다.
git-diff는 a와 z의 차이점을 보여줍니다.
git-log는 z가되기까지 걸린 여행을 보여줍니다.
git log --color -p --full-diff tag1..tag2
관련 문제
- 1. textmate와 함께 git diff를 보는 방법
- 2. git push 명령으로 모든 refs 목록을 가져 오는 방법은 무엇입니까?
- 3. 원격 지점에서 병합하기 전에 실제 git diff를 확인하는 방법은 무엇입니까?
- 4. Git에 SVN diff를 적용하는 방법은 무엇입니까?
- 5. git 커밋 문제
- 6. Git Post 커밋 훅 커밋 번호 얻기
- 7. 어떻게하면 git diff를 gitx로 사용합니까? OSX에서 diff를 사용합니다.
- 8. Git에서 태그와 그베이스 사이의 diff를 얻는 방법?
- 9. 단일 명령으로 tgz 파일을 가져오고 추출하는 방법은 무엇입니까?
- 10. Git - 팬텀 로컬 커밋
- 11. git push가 단일 명령으로 수행 할 작업을 정확히 어떻게 확인할 수 있습니까?
- 12. 단일 지점의 Git 내보내기
- 13. git add 할 때 git enable whitespace diff를 만드는 방법
- 14. 자식 svn : svn rebase 후 단일 병합 커밋 유지
- 15. git 트리를 완전히 또는 부분적으로 (단일 파일) 롤백하는 방법은 무엇입니까?
- 16. 단일 파일에서 델타를 얻는 방법은 무엇입니까?
- 17. git 저장소에서 삭제 된 디렉토리 목록을 얻는 방법은 무엇입니까?
- 18. 커밋 다시 커밋 되돌릴 커밋
- 19. 참조 Git 분기 시작 커밋
- 20. 원격 git 커밋 도구가 필요합니까?
- 21. git 커밋 중에 스크립트 실행
- 22. 커밋 서명을위한 간단한 git 워크 플로?
- 23. 푸시에 대한 커밋 메시지를 확인하는 방법은 무엇입니까?
- 24. 구성 - GitHub의 단일 디렉토리를 밀어/커밋
- 25. SVN에서 포스트 커밋 후크의 브랜치 이름을 얻는 방법은 무엇입니까?
- 26. 다음 시나리오에서 변경 사항을 얻는 방법은 무엇입니까?
- 27. MySQL - 단일 명령으로 선택 및 업데이트
- 28. git-svn Kerberos를 사용한 커밋 후 dcommit
- 29. 터미널에서 git 상태 목록을 종료하는 방법은 무엇입니까?
- 30. 공유 저장소에 자식 (Git) 커밋 수정하기
당신이 귀하의 질문에 조금 명확히 수 : 염두에두고
, 나는이 문제를 추측하고있어 당신이 찾고있는 것을 아마? "커밋 ID와 함께 파일의 diff 세부 정보"란 무엇을 의미합니까? –확실합니다 .. 예를 들어 git diff 명령은 다음과 같습니다. diff --git/opengl/libagl/egl.cpp b/opengl/libagl/egl.cpp 색인 662a1fa..64f9766 100644 --- a/opengl /libagl/egl.cpp +++ b/opengl/libagl/egl.cpp 정확한 코드 변경 (더하기/빼기). 하지만이 변경 사항에는 동일한 diff 파일에 원하는 커밋 ID와 커밋 이유도 있습니다. 그래서 생각은 내가 변화를 보게된다면 그 이유도 알 수 있다는 것입니다. 이러한 세부 사항은 "git log"를 통해 얻을 수 있지만 "git log tag1..tag2"를 실행하면 git diff의 일부가 아닌 파일로 완전히 다른 결과를 얻게됩니다 – Vinz
메시지를 커밋하고 해시 및 전체 diff를 두 지점 너의 커밋 트리에? –