Patch 파일 생성하기
- git diff 명령어로 생성하기
- 파일을 수정하고 나서 git diff 명령어를 입력합니다.
-
# 1.txt 파일 안에 있는 내용을 변경합니다. $ git diff > 1.patch $ cat 1.patch ---------------------------------------- diff --git a/1.txt b/1.txt index f937f7e..1747edd 100644 --- a/1.txt +++ b/1.txt @@ -1 +1 @@ -233 \ No newline at end of file +233555 \ No newline at end of file
- git format-patch로 생성하기
- 파일 수정 후 커밋까지 한 상태에서 git format-patch 명령어를 입력합니다.
-
# 커밋 후 $ git format-patch -M 리모트/브랜치
- patch 파일이 생깁니다. 커밋 로그도 기록되어 있어서 나중에 패치 작업을 하고 git log에서 author이 누구인지 알 수 있습니다.
Patch 파일 적용하기
- git aaply
-
$ git apply 패치파일
- 파일 추가, 삭제, 이름 변경과 같은 변경 내용을 자동으로 처리해서 리눅스 patch 명령보다 꼼꼼하게 비교합니다.
- Patch를 적용하는데 실패하면 변경 사항을 이전 상태로 롤백합니다.
- --check를 이용하여 테스트할 수 있습니다.
-
$ git apply --check 패치파일
- 에러가 발생하지 않으면 Patch가 깔끔하게 적용된 것입니다.
- 자동 커밋되지 않기 때문에 staging area에 추가하고 커밋해야 합니다.
-
- git am
- format-patch 명령으로 생성한 파일은 mbox 이메일 형식이라서 am 명령어로 patch할 수 있습니다.
- patch에 성공을 하면 새로운 커밋이 하나 만들어집니다.
- patch에 실패를 하면 사용자에게 어떻게 처리할지 물어옵니다.
- 충돌된 파일을 수정 후 staging area에 추가 후 git am --resolved 명령어를 통해서 해결합니다.
- -3 옵션을 사용하여 3-way patch를 시도할 수 있습니다. 같은 프로젝트의 커밋이라면 훨씬 더 수월하게 충돌 상황을 해결합니다.
- -i 옵션을 통해 대화형 방식을 사용할 수 있습니다.
'GIT > Git 분산 환경' 카테고리의 다른 글
[GIT] 빌드넘버 만들기 릴리즈 준비하기 (0) | 2024.03.08 |
---|---|
[GIT] 릴리즈 버전에 태그 달기 (0) | 2024.03.08 |
[GIT] 리모트 브랜치 Merge (0) | 2024.03.07 |
[GIT] 프로젝트 기여하기 (0) | 2024.02.21 |
[GIT] 분산 환경 워크플로 (1) | 2024.02.16 |