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