패치 파일은 diff 명령(linuxdiff, svndiff, gitdiff, gitformat-patch)에 의해 생성됩니다.
먼저 diff 명령과 공통 매개변수를 소개하겠습니다.
차이점:
diff의 기능은 두 파일의 차이점을 비교한 후 기록하는 것인데, 이것이 소위 diff 패치입니다. 문장형식 : diff [옵션] 소스파일(폴더) 대상파일(폴더) 리눅스 운영체제가 좋은데, 소스파일(폴더)를 패치해서 linux patchMarco linux 를 대상파일(클립)로 만드는 것, 용어는 "업그레이드"입니다. 가장 일반적으로 사용되는 세 가지 옵션은 다음과 같습니다.
-r은 재귀 옵션입니다. linux to patch를 설정하면 diff는 하위 디렉터리 파일을 포함하여 서로 다른 두 버전의 소스 코드 디렉터리에 있는 모든 해당 파일을 동시에 비교합니다.
-N 옵션은 패치 파일이 파일이 생성되거나 삭제된 상황을 올바르게 처리하도록 보장합니다.
-u 옵션은 기본 형식보다 더 컴팩트한 통합 형식으로 패치 파일을 생성합니다.
2、패치
————————————————————————
NAME
원본 파일에 패치 적용
시놉시스
패치[옵션][원본파일[패치파일]]
하지만보통은 그냥
패치-pnum
————————————————————————
간단히 말하면 패치는 diff로 만든 패치를 이용하여 원본 파일(폴더)과 대상 파일(폴더)을 변환하는 것입니다. 즉, 원본 파일(폴더)->대상 파일(폴더)이 있을 수도 있고, 대상 파일(폴더)->소스 파일(폴더)가 있을 수도 있습니다. 가장 일반적으로 사용되는 옵션은 다음과 같습니다.
-p0 옵션은 현재 디렉터리에서 대상 파일(폴더)을 찾는 것입니다
-p1 옵션은 첫 번째 수준 디렉터리를 무시하고 현재 디렉터리부터 검색을 시작합니다.
비슷한 -p2 옵션은 두 번째 수준 디렉터리를 무시해야 합니다.
......
**************************************************************************************************** ***** *************
예는 다음과 같습니다.
---이전/모듈/pcitableMonSep2711:03:561999
+++new/modules/pcitableTueDec1920:05:412000
-p0 매개변수를 사용하면 현재 디렉터리에서 old라는 폴더를 찾고, 그 아래 모듈 아래에서 pcitable 파일을 찾아 패치 작업을 수행한다는 의미입니다.
-p1 매개변수를 사용하면 첫 번째 수준 디렉터리를 무시하고(즉, 이전 디렉터리와 상관없이) 현재 디렉터리에서 모듈 폴더를 찾고 그 아래에서 pcitable을 찾는다는 의미입니다. 이에 대한 전제는 현재 디렉터리가 모듈이 위치한 디렉터리여야 한다는 것입니다. diff 패치 파일은 diff 패치 파일의 경로가 지정되어 있는 한 어느 위치에나 있을 수 있습니다. 실제로 상대 경로나 절대 경로를 사용할 수 있습니다. 하지만 저는 보통 상대 경로를 사용합니다.
**************************************************************************************************** ***** *************
-E 옵션은 빈 파일이 발견되면 삭제함을 나타냅니다.
-R 옵션은 패치 파일에 있는 "새" 파일과 "이전" 파일을 이제 교환한다는 의미입니다(실제로는 새 버전을 패치하여 이전 버전이 되도록 만드는 것입니다)
패치 파일의 구조
패치 헤드
패치 헤더는 ---/+++로 시작하는 두 줄로, 패치할 파일을 나타냅니다. ---는 이전 파일을 나타내고 +++는 새 파일을 나타냅니다.
하나의 패치 파일에 여러 개의 패치
패치 파일에는 ---/+++로 시작하는 여러 섹션이 포함될 수 있으며, 각 섹션은 패치를 적용하는 데 사용됩니다. 따라서 패치 파일에는 많은 패치가 포함될 수 있습니다.
블록
블록은 패치에서 변경할 수 있는 장소입니다. 일반적으로 변경할 필요가 없는 것으로 시작하고 끝납니다. 단지 변경될 위치를 나타내는 데 사용됩니다. 일반적으로 @@로 시작하고 다른 블록이나 새 패치 헤더의 시작으로 끝납니다.
블록 들여쓰기
블록은 한 열씩 들여쓰기되며, 이 열은 줄을 낮추거나 삭제해야 하는지 여부를 나타내는 데 사용됩니다.
블록의 첫 번째 열
+ 기호는 이 줄을 추가해야 함을 나타냅니다.
- 기호는 이 줄을 삭제해야 함을 나타냅니다.
빼기 기호나 음수 기호가 없다는 것은 단지 참조일 뿐이며 변경할 필요가 없다는 의미입니다.
사용법:
patch-p0 patch-p1 위 내용은 패치 파일에 대한 심층적인 이해: diff 명령 생성 및 공통 매개변수 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!