programing

현재 버전과 마지막 버전 간의 차이 찾기

lovejava 2023. 5. 14. 09:57

현재 버전과 마지막 버전 간의 차이 찾기

Git를 사용하여 현재 버전과 마지막 버전의 차이를 어떻게 찾을 수 있습니까?

git diff last version:HEAD

저는 "마지막 버전"의 의미를 잘 이해하지 못합니다.

HEAD^로 이전 커밋에 액세스할 수 있으므로 다음과 같은 것을 찾고 있다고 생각합니다.

git diff HEAD^ HEAD

그것은 또한 :commithash에도 적용될 수 있습니다.

git diff $commithash^ $commithash

1, Git 1.8.5 준로기,@는 의 별칭입니다.HEAD다음을 사용할 수 있습니다.

git diff @~..@

다음도 작동합니다.

git show

헤드와 커밋 간의 차이를 알고 싶다면 다음을 사용할 수 있습니다.

git diff commit_id HEAD

그러면 시각적 차이 도구가 시작됩니다(구성된 경우).

git difftool HEAD^ HEAD

HEAD와의 비교는 기본값이므로 생략할 수 있습니다(Orient가 지적한 대로).

git diff @^
git diff HEAD^
git diff commit_id

경고.

  • @에서 @ScottF와 @Panzercris는 라고 설명합니다~▁of▁be다합 대신 를 사용해야 합니다.^.

version"을 directory 않은 로 하고 version"을 "current version"이라고 합니다.HEAD분기에 사항), do(실행), 히간수행현단항사수정커분로된밋기재대으에마막해지▁((수▁simply

git diff HEAD

다음에 대한 크레딧은 사용자에게 전달됩니다.Cerran.

그리고 만약 당신이 항상 준비 영역을 건너뛰면.-a당신이 커밋할 때, 당신은 간단히 사용할 수 있습니다.git diff.

요약

  1. git diff단계별 변경사항을 보여줍니다.
  2. git diff --cached단계별 변경 내용을 보여줍니다.
  3. git diff HEAD모든 변경 사항(단계별 및 미단계별)을 표시합니다.

출처: git-diff(1) 설명서 페이지 – Cerran

malloy코멘트에서 지적했듯이, "현재 버전과 마지막 버전"이 마지막 커밋과 그 이전 커밋을 의미한다면, 간단히 사용할 수 있습니다.

git show

마지막 커밋과 마지막 커밋의 차이(있는 경우 현재 상태 포함):

git diff HEAD~

또는 짝수(유형에 따라 다름)

git diff @~

@는 의동입니다어의다on니의 입니다.HEAD 및 재현지의의~" 언급된 수정본의 부모를 주세요"라는 의미입니다.

다음과 같은 방법으로도 할 수 있습니다.

이전 커밋과 비교

git diff --name-status HEAD~1..HEAD

현재 및 이전 두 커밋과 비교

git diff --name-status HEAD~2..HEAD

사용하기만 하면 됩니다.cached플래그를 추가했지만 아직 커밋하지 않은 경우:

git diff --cached --color

마스터에 있다고 가정하면 빠르고 간단합니다.

    git diff (checkout_id):file.txt file.txt

예:

    git diff asdfioei91819280din198:file.txt file.txt

를 ,n다음을 사용할 수 있습니다.

git diff HEAD~n

따라서 현재 커밋의 최근 5개 커밋(현재 커밋 포함)은 다음과 같습니다.

git diff HEAD~5

먼저 "를 사용합니다.git log저장소에 대한 로그를 나열합니다.

이제 두 커밋과 관련된 두 커밋 ID를 선택합니다.차이점을 확인하려고 합니다(: 현재 버전과 일부 이전 버전에 대한 기대에 따라 가장 높은 커밋과 일부 오래된 커밋).

다음으로, 다음을 사용합니다.

git diff <commit_id1> <commit_id2>

또는

git difftool <commit_id1> <commit_id2>

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

등등...

나는 이클립스 EGit 플러그인이 설치된 이클립스 IDE가 있는 비트버킷을 사용합니다.

SVN과 같은 모든 버전의 파일을 비교합니다.

Menu Project Explorer → File → 마우스 오른쪽 버튼TeamShow in history를 클릭합니다.

그러면 해당 파일의 모든 변경 내역이 표시됩니다.이제 두 가지 버전을 클릭하고 → "서로 비교"를 선택합니다.

이 기능은 태그에도 적용됩니다(아래의 '고유한' 부분을 제거하고 모든 변경 사항을 확인해야 하는 경우 기타 부분을 제거하십시오).

 git diff v1.58 HEAD 

다음은 동일하며, 단일 저장소에서 마이크로 서비스를 위한 CI(연속 통합)에 유용할 수 있습니다.

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)

커밋의 개별적인 변화를 보여주기 위해 머리를 맞춥니다.

git show Head~0

커밋의 누적된 변화를 보여주기 위해 머리에.

git diff Head~0

여기서 0은 원하는 커밋 수입니다.

마지막 버전이 마지막 태그를 의미하고 현재 버전이 HEAD(현재 상태)를 의미하는 경우 마지막 태그와 차이가 있을 뿐입니다.

태그 찾기:

$ git tag --list
...
v20.11.23.4
v20.11.25.1
v20.11.25.2
v20.11.25.351

마지막 태그는 다음과 같습니다.

$ git tag --list | tail -n 1
v20.11.25.351

통합:

tag=$(git tag --list | tail -n 1)
git diff $tag

언급URL : https://stackoverflow.com/questions/9903541/finding-diff-between-current-and-last-version