your programing

현재 버전과 마지막 버전의 차이점을 찾으십니까?

lovepro 2020. 10. 2. 23:03
반응형

현재 버전과 마지막 버전의 차이점을 찾으십니까?


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

git diff last version:HEAD

나는 "마지막 버전"의 의미를 정말로 이해하지 못한다.

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

git diff HEAD^ HEAD

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 및 @Panzercrisis는 Windows에서 그 의견에 설명 ~문자 대신 사용해야합니다 ^.

"현재 버전"이 작업 디렉토리 (커밋되지 않은 수정)이고 "마지막 버전"이 HEAD(현재 브랜치에 대해 마지막으로 커밋 된 수정)이라고 가정하면 다음을 수행하십시오.

git diff HEAD

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

-a커밋 할 때 항상 스테이징 영역을 건너 뛰면 git diff.

요약

  1. git diff 단계적이지 않은 변화를 보여줍니다.
  2. git diff --cached 단계적 변화를 보여줍니다.
  3. git diff HEAD 모든 변경 사항을 표시합니다 (단계별 및 비 단계별).

출처 : git-diff (1) 매뉴얼 페이지 – Cerran


A의 지적 코멘트 에 의해 amalloy , 경우 "현재 마지막 버전"으로 마지막 커밋을 의미하고, 그 전에 커밋, 당신은 사용을 간단하게 할 수

git show

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

git diff HEAD~

또는 (입력하기 쉬움)

git diff @~

현재 분기 @의 동의어는 어디에 있으며 "나에게 언급 된 개정의 부모를 줘"를 의미합니다.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

먼저 " git log"를 사용 하여 저장소의 로그를 나열합니다.

이제 두 개의 커밋에 해당하는 두 개의 commit-id를 선택하여 차이점을 확인하십시오 ( 예제 -최상위 커밋 및 일부 이전 커밋 [현재 버전 및 일부 이전 버전에 대한 예상대로] ).

다음으로 :

git diff <commit_id1> <commit_id2>

또는

git difftool <commit_id1> <commit_id2>

I use bitbucket with eclipse IDE with Eclipse EGit plugin installed. I compare a file from any version of its history(Like SVN).

Project Explorer > file Right Click > Team > Show in history

This will bring history of all changes on that file. Now CTRL-click and select any two versions > "Compare with each other"


This will also work for tags. (remove the 'uniq' below and other parts if you need to see all changes)

 git diff v1.58 HEAD 

Below is the same, that could be useful for CI for microservices in monorepo

git diff v1.58 HEAD  --name-only | sort -u | awk 'BEGIN {FS="/"} {print $1}' | uniq
<Folder Name> 

(credit - https://dzone.com/articles/build-test-and-deploy-apps-independently-from-a-mo)


If the top commit is pointed by HEAD then you can do something like this:

commit1 -> HEAD
commit2 -> HEAD~1
commit3 -> HEAD~2

Diff between 1st and 2nd commit:

git diff HEAD~1 HEAD

Diff between 1st and 3rd commit:

git diff HEAD~2 HEAD

Diff between 2nd and 3rd commit:

git diff HEAD~2 HEAD~1

and so on...

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

반응형