`git diff`는 `diff`와 관련이 있나요?

`git diff`는 `diff`와 관련이 있나요?

git diff와 연관되어 있는 diff?

  1. git diff을 기반으로 구현 됩니까 diff?

  2. ~이다명령줄 구문git diff비슷하다그것의diff? 하나를 배우는 것이 다른 하나를 사용하는 데 도움이 됩니까?

  3. 출력 파일이 동일한 형식을 따르고 있습니까? git patch및 에서 둘 다 사용할 수 있습니까 patch? (있나요 git patch? 와 어떤 관련이 있나요 patch?)

감사해요.

답변1

파일 형식은 상호 운용 가능합니다. Git은 가장 좋은 형식인 diff -u. 또한 추가 유형의 변경을 나타내기 위해 이를 확장합니다.

에 해당하는 것은 patch입니다 git apply. 인덱스의 변경 사항을 준비하고 이를 작업 트리에 적용합니다.

참조 문서에서는 명시적인 비교를 하지 않는 것 같지만, 나는 git apply보다 엄격했던 것을 기억합니다. patch활성화 또는 비활성화할 수 있는 여러 테스트/오류가 언급되어 있습니다.

참조 문서에서는 특정 옵션을 사용하는 경우 git 저장소 외부에서도 "GNU 패치 대체"로 사용할 수 있다고 제안합니다.

답변2

git-diff는 diff보다 더 많은 기능을 제공하며 diff는 다음과 같은 라인을 생성하기 때문에 출력 패치가 상호 운용 가능하다고 생각하지 않습니다(몇 가지 추가 옵션 없이).

diff -ruNa dir1/file1.txt dir2/file1.txt

git-diff는 다음과 같은 라인을 생성합니다.

diff --git a/dir1/file1.txt b/dir2/file1.txt

(소스 및 대상 접두사, 로 전환 가능 --no-prefix및 다양한 옵션에 유의하세요)

git-diff의 몇 가지 추가 기능은 다음과 같습니다.

  • 이동/이름이 변경된 파일을 기록할 수 있는 동시에차이점은 할 수 없습니다

  • 재귀 모드, 통합 diff를 사용하고 기본적으로 새 파일/삭제된 파일을 처리합니다( diff -ruN).

  • 차이점을 찾기 위한 다양한 알고리즘 지원

  • 바이너리 데이터를 ASCII로 인코딩하는 git 바이너리 패치 지원

관련 정보