etc./StackOverFlow

Git 커밋의 변경 사항을 어떻게 볼 수 있습니까?

청렴결백한 만능 재주꾼 2021. 12. 26. 04:07
반응형

질문자 :laktak


git diff COMMIT 수행할 때 해당 커밋과 HEAD(내가 아는 한) 사이의 변경 사항을 볼 수 있지만 해당 단일 커밋으로 인해 변경된 사항을 보고 싶습니다.

나는 그 출력을 줄 diff / log 에 대한 명백한 옵션을 찾지 못했습니다.



COMMIT 해시에 대한 diff를 보려면 다음을 수행하십시오. COMMIT 는 커밋의 해시입니다.

git diff COMMIT~ COMMIT 당신의 차이가 표시됩니다 COMMIT 의 조상과는 COMMIT . 명령에 대한 자세한 내용과 ~ 표기법 및 그 친구들에 대한 gitrevisions 에 대한 자세한 내용은 git diff 매뉴얼 페이지를 참조하십시오.

또는 git show COMMIT 가 매우 유사한 작업을 수행합니다. (diff를 포함한 커밋의 데이터 - 병합 커밋은 제외) git show 맨페이지를 참조하십시오.

(또한 git diff COMMIT COMMIT 와 헤드의 차이점을 보여줍니다.)


Nevik Rehnel

" git commit with its parent? "에서 언급했듯이 git diff 를 다음과 함께 사용할 수도 있습니다.

 git diff COMMIT^!

또는

 git diff-tree -p COMMIT

git show를 사용하면 (diff에만 집중하려면) 다음을 수행해야 합니다.

 git show --color --pretty=format:%b COMMIT

COMMIT 매개변수는 commit-ish입니다 .

A는 객체 커밋 또는 개체를 재귀 적으로 역 참조 할 수있는 개체를 커밋합니다. 커밋 개체, 커밋 개체 를 가리키는 태그 개체 , 커밋 개체를 가리키는 태그 개체를 가리키는 태그 개체 등은 모두 커밋 대상입니다.

commit-ish를 참조하려면 gitrevision "SPECIFYING REVISIONS"를 참조하십시오.
"Git에서 tree-ish의 의미는 무엇입니까? "도 참조하십시오.


VonC

다음과 같은 쉬운 방법을 시도해 볼 수도 있습니다.

 git show <COMMIT>

Lakhan

git show 는 가장 최근 커밋에서 변경된 사항을 보여줍니다. git show HEAD 와 동일합니다.

git show HEAD~1 은 한 커밋을 되돌립니다.


Adam Salma

나는 일반적으로 다음을 수행합니다.

 git diff HEAD~1

마지막 커밋에 대한 변경 사항을 표시합니다. 더 많은 커밋이 있는 경우 보고 싶은 커밋의 수만큼 숫자 1을 늘리십시오.


Alex

사용하다:

 git show <commit_sha>

이렇게 하면 해당 커밋에 있는 내용만 표시됩니다. 두 커밋 SHA-1 해시 사이에 공백을 넣어 범위를 지정할 수 있습니다.

 git show <beginning_sha> <ending_sha>

기능 로그가 모두 연속으로 있기 때문에 자주 리베이스하는 경우 매우 유용합니다.

마지막 3개의 커밋을 보려면 HEAD 구문을 사용할 수 있습니다.

 git show HEAD~3 HEAD

Iwnnay

먼저 다음을 사용하여 커밋 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

Mohideen bin Mohammed

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>

마지막 커밋 이전 버전과 마지막 커밋을 비교합니다.

다소 혼란스럽게 표현된 것은 사실이지만, 다음과 같이 덜 혼란스러울 것입니다.

가장 최근 커밋과 그 이전 커밋을 비교합니다.


user456814

다음 작업을 수행하는 것 같습니다. 병합으로 가져온 내용을 표시하는 데 사용합니다.

 git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>

MichaelMoser

또 다른 가능성:

 git log -p COMMIT -1

John_West

특정 커밋과 마지막 커밋을 비교하는 아래 명령이 마음에 듭니다.

 git diff <commit-hash>^-

예시:

 git diff cd1b3f485^-

starcwl

git diff HEAD HEAD^1 을 사용하여 상위 커밋이 있는 diff를 볼 수 있습니다.

파일 목록만 보고 싶다면 --stat 옵션을 추가하세요.


Irshu

최신 커밋의 변경 사항을 확인하고 싶다면 git show 하면 됩니다.


MyrionSC2

git difftool COMMIT^ <commit hash>

difftool을 구성한 경우에도 가능합니다.

difftool 을 구성하는 방법은 여기를 참조하십시오. 또는 여기 매뉴얼 페이지 .

또한 git diff-tree --no-commit-id --name-only -r <commit hash> 를 사용하여 주어진 커밋 해시에서 어떤 파일이 변경/커밋되었는지 확인할 수 있습니다.


Chand Priyankara

커밋별로 작성자와 시간을 보려면 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'

어떤 파일이 변경되었는지 확인하려면 위 의 Merge 행의 값으로 다음을 실행하십시오. git diff --stat a2a2894 3a1ba8f

실제 diff를 보려면 git --stat a2a2894 3a1ba8f 실행하십시오.


Nikita R.

전체 변경 사항을 확인하려면:

 git diff <commit_Id_1> <commit_Id_2>

변경/추가/삭제된 파일만 확인하려면:

 git diff <commit_Id_1> <commit_Id_2> --name-only

참고 : 중간에 커밋 없이 diff를 확인하려면 커밋 ID를 입력할 필요가 없습니다.


bit_cracker007

다음 코드는 현재 커밋을 보여줍니다

 git show HEAD

jinson

이 명령은 Git 상위 커밋 해시를 가져옵니다.

 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

souparno majumder

Windows 10에서 Git 버전 2.6.1.windows.1을 실행 중이므로 Nevik의 답변(캐럿 대신 물결표)을 약간 수정해야 했습니다.

 git diff COMMIT~ COMMIT

또 다른 옵션은 캐럿을 인용하는 것입니다.

 git diff "COMMIT^" COMMIT

Juuso Ohtonen

특정 파일에 대한 두 커밋 간의 변경 사항을 검토하는 것도 가능합니다.

 git diff <commit_Id_1> <commit_Id_2> some_dir/file.txt

Sergey Miletskiy

나를 위해 이것은 잘 작동합니다.

 git show COMMIT --compact-summary

다음 정보를 보여줍니다.

파일 생성 또는 삭제("new" 또는 "gone", 선택적으로 심볼릭 링크인 경우 "+l") 및 모드 변경(추가 또는 제거를 위한 "+x" 또는 "-x")과 같은 확장 헤더 정보의 요약된 요약을 출력합니다. 실행 가능한 비트)를 diffstat에 저장합니다. 정보는 파일 이름 부분과 그래프 부분 사이에 넣습니다. --stat를 의미합니다.


José Alvarez

그래픽보기에서 소스 변경을 확인하는 경우 다음을 사용하십시오.

 gitk (your commit id goes here)

예를 들어:

 gitk HEAD~1

vijayakannan

출처 : http:www.stackoverflow.com/questions/17563726/how-can-i-see-the-changes-in-a-git-commit

반응형