Git에서 하나의 파일을 임의의 버전으로 비교하는 방법은 무엇입니까? pom.xml마스터 분기에서 Git의

pom.xml마스터 분기에서 Git의 임의의 이전 버전 으로 파일을 어떻게 비교할 수 있습니까?



답변

넌 할 수있어:

git diff master~20:pom.xml pom.xml

… 현재를 비교 pom.xml에서 하나에 master최초의 부모를 통해 20 개정 전에. master~20물론 커밋의 오브젝트 이름 (SHA1sum) 또는 개정을 지정하는 다른 많은 방법으로 바꿀 수 있습니다 .

이것은 실제로 pom.xml커밋 된 버전이 아닌 작업 트리 의 이전 버전 과 이전 버전을 비교하는 것 입니다 master. 원하는 경우 대신 다음을 수행 할 수 있습니다.

git diff master~20:pom.xml master:pom.xml


답변

git diff <revision> <path>

예를 들면 다음과 같습니다.

git diff b0d14a4 foobar.txt


답변

단일 파일의 마지막 커밋 간의 차이점을 보려면 다음을 수행하십시오.

git log -p -1 filename

이것은 당신에게 git 파일의 diff를 줄 것이고, 로컬 파일을 비교하지 않습니다.


답변

마지막 커밋에서 파일에서 변경된 내용을 보려면

git diff HEAD~1 path/to/file.

숫자 (~ 1)를 diff하려는 n 번째 커밋으로 변경할 수 있습니다.


답변

일반 구문 :

$git diff oldCommit..newCommit -- **FileName.xml > ~/diff.txt

리포지토리의 “FileName.xml”이라는 이름의 모든 파일

“-“와 “**”사이의 공백에 주목하십시오.

질문에 대한 답변 :

$git checkout master
$git diff oldCommit..HEAD -- **pom.xml
or
$git diff oldCommit..HEAD -- relative/path/to/pom.xml

항상 git과 마찬가지로 tag / sha1 / “HEAD ^”를 사용하여 커밋을 식별 할 수 있습니다.

우분투에서 git 1.9.1로 테스트했습니다.


답변

커밋이 HEAD가 아니면 bash의 중괄호 확장이 특히 유용합니다. 특히 파일 이름이 긴 경우 위의 예는 다음과 같습니다.

git diff master~20:pom.xml master:pom.xml

될 것이다

git diff {master~20,master}:pom.xml

bash로 Brace 확장 에 대해 자세히 알아보십시오 .


답변

현재 커밋에 대한 5 커밋을 비교하려면 on master만 수행하면됩니다.

git diff master~5:pom.xml master:pom.xml

또한 해시 번호 커밋을 참조 할 수 있습니다. 예를 들어 해시 번호가 x110bd64인 경우 차이점을 확인하기 위해 다음과 같이 할 수 있습니다.

git diff x110bd64 pom.xml