'git format-patch'와 'git diff'의 차이점은 무엇입니까?
'git format-patch'와 'git diff'의 출력 사이에 차이가 없습니다. 그리고 'git diff'를 사용하여 패치를 생성 한 다음 git apply를 사용하여 적용 할 수 없습니까?
내 문제는 인덱스에 변경 사항이 추가되었지만 분명히 git format-patch는 커밋 만 허용하므로 diff 출력을 사용할 수 있다면이 명령을 사용하여 인덱스 변경 사항에 대한 패치를 생성 할 수 있습니다.
git diff --cached > index.patch
로 생성 된 패치 git format-patch
에는 커밋에 대한 메타 정보 (커미터, 날짜, 커밋 메시지 등)도 포함되며 이진 데이터의 차이가 포함됩니다. 모든 것이 메일 형식으로 지정되어 쉽게 보낼 수 있습니다. 이를 수신 한 사람은 해당 커밋을 다시 만들 수 git am
있으며 모든 메타 데이터는 그대로 유지됩니다. git apply
간단한 diff의 수퍼 세트이므로 함께 적용 할 수도 있습니다 .
으로 생성 된 패치 git diff
는 컨텍스트 (생각 diff -u
) 와 함께 간단한 차이가 될 것 입니다. 와 함께 적용 할 수도 git apply
있지만 메타 데이터는 다시 생성되지 않습니다 (존재하지 않기 때문에).
요약 git format-patch
하면는 커밋을 전송하는 git diff
데 유용하고 두 트리 간의 차이를 얻는 데 유용합니다.
매뉴얼에서 git-format-patch 는 이메일 제출에 적합한 패치를 준비하고 git-diff 는 변경 사항을 보여줍니다.
그것들은 서로 다른 두 가지이며 다른 목적을 가지고 있습니다. 그들은 단지 패치 형식을 출력합니다. 그러나 git-format-patch
커밋에 대한 데이터 (날짜, 작성자, 커밋 메시지)를 추가하고이를 Unix 메일 메시지로 보내기에 적합한 형식으로 번들로 묶습니다 (파일 일 뿐이므로 다른 방법으로 전송하고 git-am).
또한 git-format-patch
지정한 범위의 각 커밋에 대한 패치 파일을 생성합니다. 이러한 변경 사항은 git-am
.
git-diff
요청한 두 상태 간의 차이를 보여주고 패치 파일을 만드는 데 사용할 수 있습니다. 그러나 이것은 일반적인 패치 파일이며 패치를 적용하면 작업 디렉토리의 상태가 변경됩니다.
그리고 그렇습니다. 그런 식으로 인덱스 용 패치를 만들 수 있습니다.
'Programing' 카테고리의 다른 글
OAuth를 사용하여 트위터 신원을 확인한 후 사용자의 이메일 ID를 얻을 수있는 방법이 있나요? (0) | 2020.09.16 |
---|---|
오류 : "INSERT EXEC 문은 중첩 될 수 없습니다." (0) | 2020.09.16 |
요소가 하나만있는 튜플을 만드는 방법 (0) | 2020.09.16 |
Apache가 PHP 파일을 표시하는 대신 다운로드하고 있습니다. (0) | 2020.09.16 |
Maven Surefire와 Maven Failsafe 플러그인의 차이점은 무엇입니까? (0) | 2020.09.16 |