git 패치 파일 만들기

singleheart·2023년 5월 6일
0

TL; DR

git 변경사항을 저장하고 적용할 수 있는 패치 파일을 만드는 방법을 설명합니다.

개요

협업하다 보면 미완성인 코드를 공유할 일이 생깁니다. 다른 구성원한테 공유할 수도 있고, 한 기계에서 작업하던 내용을 다른 기계로 옮겨서 이어서 하고 싶을 수도 있습니다. 작업이 완료됐다면 commit, push 하고 다른 기계에서 pull 하면 되니까 문제가 안 되고요, 파일 하나만 수정했다면 그 파일을 전송하면 됩니다. 하지만, 작업하던 내용이 아직 commit할 상황은 아니고 변경 사항도 여러 파일에 걸쳐 있는 경우도 있겠죠. 저장소를 통째로 복사할 수도 있겠지만 번거로운 작업입니다.

이럴 때 패치 파일을 하나 만들어서 공유할 수 있습니다. git의 변경 사항만 딱 전달하는 방법이죠. 보내는 사람도 받는 사람도 간단한 명령어 한 줄로 작업할 수 있어서 편리합니다. 임시 브랜치를 별도로 따서 공유하는 방법이 정석일 것 같습니다만 상황이 여의치 않을 때 활용해볼 수 있겠습니다.

패치 만들기

$ git diff > test.patch

패치 파일 이름은 마음대로 바꾸셔도 됩니다. 패치 파일은 텍스트 파일로 하나만 생성됩니다.

패치 적용하기

곧바로 패치를 적용해도 되지만, 문제가 없는지 테스트부터 하기를 권합니다.

$ patch -p1 --dry-run < test.patch

실패하지 않으면 실제로 적용합니다.

$ patch -p1 < test.patch

※ -p1은 패치 파일에 파일명이 등장할 때마다 prefix가 있음을 알려주는 옵션입니다. git diff에서 파일명에 prefix를 붙이는 게 기본값이기 때문입니다. prefix를 안 붙이려면 git diff에 --no-prefix 옵션을 주면 되고요, 이렇게 만든 패치 파일은 적용할 때 -p1이 아니라 -p0 옵션을 쓰면 됩니다.

profile
개발자

0개의 댓글