Git을 사용하면 현재 버전과 마지막 버전의 차이점을 어떻게 찾을 수 있습니까?
git diff last version:HEAD
Git을 사용하면 현재 버전과 마지막 버전의 차이점을 어떻게 찾을 수 있습니까?
git diff last version:HEAD
답변:
나는 "마지막 버전"의 의미를 실제로 이해하지 못한다.
HEAD ^로 이전 커밋에 액세스 할 수 있으므로 다음과 같은 것을 찾고 있다고 생각합니다.
git diff HEAD^ HEAD
Git 1.8.5부터는 @
의 별칭 HEAD
이므로 다음을 사용할 수 있습니다.
git diff @~..@
다음도 작동합니다.
git show
head와 commit 사이의 차이점을 알고 싶다면 다음을 사용할 수 있습니다.
git diff commit_id HEAD
그러면 시각적 diff 도구 (구성된 경우)가 시작됩니다.
git difftool HEAD^ HEAD
HEAD와의 비교가 기본값이므로 Orient에서 지적한대로 생략 할 수 있습니다 .
git diff @^
git diff HEAD^
git diff commit_id
~
문자 대신에 문자를 사용해야 한다는 의견을 설명 합니다 ^
.@
의 별칭입니다 HEAD
. 그리고 이후 ~
및 ^
다시 커밋 하나를 갈 때 동일, 내가 찾을 git diff @~..@
입력 훨씬 쉽게.
git show
되므로 @Andrew 가 여전히 더 쉽습니다 @~..@
.
git show
커밋 메시지를 인쇄하고 적어도 Git 2.5.4 (Apple Git-61)에서 특정 변경 사항의 차이를 출력하지 않으므로 실제로 OP의 질문에 대한 답변이 아닙니다.
git show
경우이다 HEAD
입니다 병합 당신이 병합 변경 자체가 없을 수 있습니다 자체를 저지하기 때문에 당신이 기대하는 것을 얻을 수 없습니다 커밋합니다. git diff HEAD^ HEAD
버전 사이의 실제 변경 사항을 보여줍니다
"현재 버전"이 작업 디렉토리 (커밋되지 않은 수정)이고 "마지막 버전"이 HEAD
(현재 분기에 대한 마지막 커밋 된 수정)이라고 가정하면 간단히
git diff HEAD
다음에 대한 크레딧은 사용자에게 전달됩니다 Cerran
됩니다.
-a
커밋 할 때 항상 준비 영역을 건너 뛰면 간단히 사용할 수 있습니다.git diff
.
요약
git diff
스테이지되지 않은 변경 사항을 표시합니다.git diff --cached
단계적 변화를 보여줍니다.git diff HEAD
모든 변경 사항 (단계적 및 비 단계적)을 표시합니다.출처 : git-diff (1) 매뉴얼 페이지 – Cerran
-a
커밋 할 때 항상 준비 영역을 건너 뛰면 간단히 사용할 수 있습니다 git diff
. <1> git diff
은 비 단계적 변경을 보여줍니다 . <2> git diff --cached
는 단계적 변화를 보여줍니다 . <3> git diff HEAD
은 모든 변경 사항을 보여줍니다 (단계적 및 비 단계적). 출처 : git-diff (1) 매뉴얼 페이지
git show HEAD~1
경우 마지막 커밋과 git show HEAD~2
등 을 표시하는 데 사용 합니다 . 를 통해 하나의 파일 만 표시하십시오 git show HEAD~2 my_file
.
마지막 한 커밋과 마지막 커밋의 차이 (있는 경우 현재 상태와 더한 경우) :
git diff HEAD~
또는 심지어 (쉽게 입력)
git diff @~
현재 브랜치 @
의 동의어는 어디에 있으며 "나에게 언급 된 개정의 부모를주십시오"를 의미합니다.HEAD
~
git diff HEAD^
(등가 HEAD~
형식이 아닌) 아주 좋아 합니다. 나처럼 "오래된 자식"을 기억하는 것이 좀 더 쉬운
~
과 @
의미를 설명함으로써 답변을 개선 할 수 있습니다 .
diff HEAD^ HEAD
있어야합니다 git diff @^!
. 3:41 의r1^!
cached
추가했지만 아직 커밋하지 않은 경우 플래그를 사용하십시오 .
git diff --cached --color
HEAD가 상단 커밋을 가리키면 다음과 같이 할 수 있습니다.
commit1 -> HEAD
commit2 -> HEAD~1
commit3 -> HEAD~2
첫 번째 커밋과 두 번째 커밋 사이의 차이점 :
git diff HEAD~1 HEAD
첫 번째 커밋과 세 번째 커밋 사이의 차이점 :
git diff HEAD~2 HEAD
두 번째와 세 번째 커밋 사이의 차이점 :
git diff HEAD~2 HEAD~1
등등...
태그에도 적용됩니다 (모든 변경 사항을 보려면 아래의 'uniq'및 다른 부분을 제거하십시오).
git diff v1.58 HEAD
아래는 동일 하며 모 놀리 식 저장소의 마이크로 서비스에 대한 CI ( Continuous Integration )에 유용 할 수 있습니다 .
git diff v1.58 HEAD --name-only | sort -u | awk 'BEGIN {FS="/"} {print $1}' | uniq
<Folder Name>
(신용-https: //dzone.com/articles/build-test-and-deploy-apps-independently-from-a-mo )