답변:
특정 COMMIT
해시에 대한 차이점을 보려면
git diff COMMIT~ COMMIT
그 COMMIT
조상과의 차이점을 보여줄 것 COMMIT
입니다. 표기법과 그 친구에 대한 명령 및 gitrevisions 에 대한 자세한 내용은 git diff 매뉴얼 페이지를 참조하십시오 . ~
또는 git show COMMIT
매우 비슷한 것을 수행합니다. (확산을 포함하지만 커밋에 대한 커밋을 포함하지 않는 커밋의 데이터) git show 맨 페이지를 참조하십시오 .
^
필요가 톰슨과 Bourne의 쉘에서 인용 (동의어에 대한 될 수 |
있다)와 rc
및 그 유도체 (캐럿 연산자)과의 zsh
extendedglob와 함께 (사용 not
로빙 운영자)
HEAD^
커밋에 여러 부모가있는 경우 (즉, 병합 커밋) 첫 번째 부모 를 의미합니다.
git diff COMMIT~ COMMIT
나를 위해 일하고, 캐럿 대신 물결표를 주목하십시오. 나는 윈도우 10에서 자식 버전 2.6.1.windows.1를 실행 해요
" 부모와 git commit의 차이점에 대한 속기? " 에서 언급했듯이 다음 과 함께 사용할 수도 있습니다 git diff
.
git diff COMMIT^!
또는
git diff-tree -p COMMIT
git show를 사용하면 diff에만 집중하기 위해 다음을 수행해야합니다.
git show --color --pretty=format:%b $COMMIT
COMMIT
매개 변수는있다 커밋 틱 :
A는 객체 커밋 또는 개체를 재귀 적으로 역 참조 할 수있는 개체를 커밋합니다. 커밋 객체, 커밋 객체 를 가리키는 태그 객체, 커밋 객체 를 가리키는 태그 객체 등의 커밋은 모두 다음과 같습니다 .
참조 "개정 이력을 지정"gitrevision을 커밋 틱를 참조.
" Git에서 나무의 의미는 무엇입니까? " 도 참조하십시오 .
이 쉬운 방법으로 시도 할 수도 있습니다.
git show <COMMIT>
먼저 다음을 사용하여 커밋 ID를 얻습니다.
git log #to list all
또는
git log -p -1 #last one commit id
커밋 ID를 복사하십시오.
이제 두 가지 방법을 사용하여 특정 커밋의 변경 사항을 나열합니다.
방법 1 :
git diff commit_id^! #commit id something like this 1c6a6000asad012
방법 2 :
git show commit_id
For example: git show 1c6a600a
^!
뜻입니까 ??
git-diff (1) 매뉴얼 페이지에서 :
git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>
가운데 세 번째를 사용하십시오.
git diff [options] <parent-commit> <commit>
또한 예제 섹션 의 맨 아래에있는 동일한 매뉴얼 페이지에서 :
$ git diff HEAD^ HEAD <3>
마지막 커밋과 마지막 커밋 이전의 버전을 비교하십시오.
분명히 그것은 약간 혼란스럽게 표현됩니다.
가장 최근의 커밋과 커밋을 비교하십시오.
git diff HEAD HEAD^
.
다음은 그 일을하는 것 같습니다. 병합으로 가져온 내용을 보여주기 위해 사용합니다.
git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>
git log
합니까? ( stackoverflow.com/a/18585297/6309 )
git diff HEAD HEAD^1
부모 커밋으로 diff를 보는 데 사용할 수 있습니다 .
파일 목록 만 보려면 --stat
옵션을 추가하십시오 .
diff
명령을 읽는 방법 은 다음과 같습니다. 커밋에서 커밋 HEAD
으로 가져 오기 위해 파일에서 무엇을 변경해야 HEAD^1
합니까?
커밋 사용으로 작성자와 시간을 보려면 git show COMMIT
. 다음과 같은 결과가 발생합니다.
commit 13414df70354678b1b9304ebe4b6d204810f867e
Merge: a2a2894 3a1ba8f
Author: You <you@you.com>
Date: Fri Jul 24 17:46:42 2015 -0700
Merge remote-tracking branch 'origin/your-feature'
어떤 파일이 변경되었는지 확인하려면 위의 병합 행 값을 사용하여 다음을 실행하십시오 git diff --stat a2a2894 3a1ba8f
.
실제 diff를 보려면 다음을 실행하십시오. git --stat a2a2894 3a1ba8f
git --stat a2a2894 3a1ba8f
"을 실행하십시오 . 나는 당신이 git diff a2a2894 3a1ba8f
다른 것을 의미한다고 생각합니다 unknown option: --stat
.
전체 변경 사항을 확인하려면 다음을 수행하십시오.
git diff <commit_Id_1> <commit_Id_2>
변경 / 추가 / 삭제 된 파일 만 확인하려면 :
git diff <commit_Id_1> <commit_Id_2> --name-only
참고 : 사이에 커밋없이 diff를 확인하기 위해 커밋 ID를 넣을 필요는 없습니다.
Windows 10에서 Git 버전 2.6.1.windows.1을 실행하고 있으므로 Nevik의 답변을 약간 수정해야했습니다 (캐럿 대신 물결표).
git diff COMMIT~ COMMIT
또 다른 옵션은 캐럿을 인용하는 것입니다.
git diff "COMMIT^" COMMIT
이 명령은 Git 부모 commit-hash를 얻는다 :
git log -n 2 <commit-hash>
그 후 git diff-tool <commit-hash> <parent-commit-hash>
예:
bonnie@bonnie ~/ $ git log -n 2 7f65b9a9d3820525766fcba285b3c678e889fe3
commit 7f65b9a9d3820525766fcba285b3c678e889fe3b
Author: souparno <souparno.majumder@gmail.com>
Date: Mon Jul 25 13:17:07 2016 +0530
CSS changed to maintain the aspect ratio of the channel logos and to fit them properly.
commit c3a61f17e14e2b80cf64b172a45f1b4826ee291f
Author: souparno <souparno.majumder@gmail.com>
Date: Mon Jul 25 11:28:09 2016 +0530
The ratio of the height to width of the channel images are maintained.
금후
git difftool 7f65b9a9d3820525766fcba285b3c678e889fe3b c3a61f17e14e2b80cf64b172a45f1b4826ee291f
그래픽보기에서 소스 변경 사항을 확인하는 경우
$gitk (Mention your commit id here)
예를 들면 다음과 같습니다.
$gitk HEAD~1