이 안내서는 프로그램이나 파일에 패치를 적용하기위한 기본 개요를 제공합니다.
패치 적용에 사용되는 명령은 patch 명령이지만 패치를 적용하려면 diff 명령을 사용하여 패치해야하는 차이점을 제공해야합니다.
왜 패치를 만들겠습니까?
HTML 파일이 다음과 같이 있다고 가정 해보십시오.
MySite에 오신 것을 환영합니다.
위의 소스는 웹 브라우저에로드되면 "Welcome to MySite"라는 단어가 표시됩니다.
동일한 파일의 여러 버전이있을 때 프로그래밍 할 때 일반적입니다. 예를 들어, 현재 라이브 버전 인 하나의 버전이있을 것이며, 여러 가지 변경 사항이 포함될 수있는 개발 버전의 다른 버전이있을 것입니다. 마지막으로 릴리스 분기에 다른 버전이있을 수 있습니다.
릴리스 지점은 실제 사용자 (이 경우 MySite 웹 사이트 방문자)가 사용하는 버전입니다. MySite가 버전 1.0이라고 가정 해 보겠습니다. 개발 단계가 끝나면이 경우 1.1이 될 배포 분기를 만듭니다. 개발 분기는 버전 1,2에서 릴리스 될 예정이 아니지만 버전 1.1에서 변경 될 수 있으므로 릴리스 분기보다 먼저 수행됩니다.
MySite를 YourSite라고해야한다는 버그가 있다고 상상해보십시오. 각 지점에 차례로 가서 라이브 버전, 개발 버전 및 릴리스 버전을 변경하면 라이브로 변경 사항을 적용한 다음 개발 및 릴리스 분기에 패치를 적용 할 수 있습니다.
실제 사례
다음 코드를 사용하여 myfile.html이라는 파일을 만듭니다.
MySite에 오신 것을 환영합니다.
이것은 패치 소스 코드 예제입니다.
다음 코드를 사용하여 myfile_v2.html이라는 다른 파일을 만듭니다.
YourSite에 오신 것을 환영합니다.
이것은 패치 소스 코드 예제입니다.
첫 번째 파일은 "Welcome to MySite"라는 제목의 원본 웹 페이지입니다. 두 번째 파일은 MyFile이 텍스트의 YourFile로 이름이 바뀌는 것을 제외하고 첫 번째 파일과 동일합니다.
차이점 파일을 만드는 방법
패치를 작성하려면 myfile.html과 myfile_v2.html의 차이점을 해결해야합니다.
다음과 같이 diff 명령을 사용하여이를 수행 할 수 있습니다.
diff -u myfile.html myfile_v2.html> myfile.patch
다음과 같이 nano 편집기에서 myfile.patch 파일을 열어 볼 수 있습니다. nano myfile.patch
변경되지 않은 선은 파란색으로 표시됩니다. 제거 된 선은 빨간색으로 표시되고 추가 된 선은 녹색으로 표시됩니다. myfile.html에 패치를 적용하려면 다음 명령을 사용하십시오. 패치 <myfile.patch 이렇게하면 diff 명령을 사용하여 작성된 변경 사항이 원본 파일 myfile.html에 적용됩니다. myfile.html이 원래대로 돌아가도록 패치를 되돌리려면 다음 명령을 사용하십시오. 패치 -R <myfile.patch patch 명령은 전체 디렉토리 구조에 패치를 적용하는 데 사용할 수 있습니다. 패치를 작성하고 좋은 소스 제어를 보장하는 patch 명령보다 훨씬 우수한 도구가 있습니다. 많은 개발 프로젝트가 소스 제어를 위해 GIT를 사용하는 이유가 있습니다. GIT를 사용하면 일관된 분기 전략을 쉽게 작성할 수 있습니다. patch 명령은 차이점을 bash 스크립트 또는 간단한 것으로 적용하는 데는 좋지만 패치 할 파일의 백업 복사본을 쉽게 만들고 같은 위치에 새 파일을 복사하기 만하면됩니다. 자세한 내용은 man 명령을 사용하십시오. 남자 패치 패치 명령을 사용하여 패치를 적용하는 방법
패치 되돌리기
개요