Git Patch 만들기와 적용하기
Git patch는 특정 커밋의 변경 사항을 파일로 저장하여 다른 저장소에 적용할 수 있도록 하는 유용한 기능입니다. 이를 통해 협업 시 변경 사항을 쉽게 공유하고 적용할 수 있습니다. 이 글에서는 Git patch를 만드는 방법과 적용하는 방법을 단계별로 설명하겠습니다.
Git Patch란?
Git patch는 커밋의 변경 사항을 파일로 저장한 것입니다. 이 파일은 다른 저장소에 적용할 수 있어, 변경 사항을 쉽게 공유할 수 있습니다. 이는 특히 이메일을 통해 패치를 주고받는 경우에 유용합니다.
Git patch를 만드는 방법은 여러 가지가 있습니다. 주로 사용하는 두 가지 방법을 소개합니다.
1. 특정 커밋의 패치 만들기
특정 커밋의 변경 사항을 패치로 만들려면 다음 명령어를 사용합니다:
git format-patch -1 <커밋해시>
예를 들어, `abc1234` 커밋의 패치를 기준으로 1개의 commit을 패치로 만드는 경우
git format-patch -1 abc1234
이 명령어를 실행하면 `0001-커밋메시지.patch` 파일이 생성됩니다. format-patch 후에는 `abc1234` commit이전으로 몇개의 commit을 patch로 만들지 결정합니다.
예제에서는 한개의 commit만 패치로 변경하기 위해서 -1을 사용했습니다.
2. 여러 커밋의 패치 만들기
여러 커밋의 변경 사항을 패치로 만들려면 다음 명령어를 사용합니다:
git format-patch <시작해시>..<끝해시>
예를 들어, `abc1234` 커밋부터 `def5678` 커밋까지의 패치를 만들려면:
git format-patch abc1234..def5678
이 명령어를 실행하면 각 커밋마다 개별 패치 파일이 생성됩니다.
Git Patch 적용하기
Git patch를 적용하려면 `git apply` 명령어를 사용합니다. 다음 단계에 따라 패치를 적용할 수 있습니다.
git am은 git format-patch 명령어로 생성된 패치 파일을 적용하는 데 사용되고 git apply는 패치 파일의 변경 사항을 워킹 디렉토리에 적용하며 커밋을 생성하지 않습니다. 주로 로컬에서 간단한 변경 사항을 적용할 때 사용합니다.
패치 파일로 적용하기
패치 파일을 적용하려면 다음 명령어를 사용합니다:
git apply <패치파일명>
예를 들어, `0001-커밋메시지.patch` 파일을 적용하려면 아래와 같은 명령어를 사용할 수 있습니다.
git apply 0001-커밋메시지.patch
패치 파일을 커밋으로 적용하기
패치 파일을 커밋으로 적용하려면 `git am` 명령어를 사용합니다. 이 명령어는 패치를 적용하고 자동으로 커밋을 생성합니다:
git am <패치파일명>
예를 들어, `0001-커밋메시지.patch` 파일을 커밋으로 적용하려면 아래의 명령을 사용합니다.
git am 0001-커밋메시지.patch
Git Patch 관련 유용한 명령어 요약
작업 | 명령어 |
특정 커밋의 패치 만들기 | git format-patch -1 <커밋해시> |
여러 커밋의 패치 만들기 | git format-patch <시작해시>..<끝해시> |
패치 파일 적용하기 | git apply <패치파일명> |
패치 파일을 커밋으로 적용하기 | git am <패치파일명> |
'Programming' 카테고리의 다른 글
GitHub Actions의 구조와 활용법 (0) | 2024.07.28 |
---|---|
Use Case Diagram 작성 방법 (1) | 2024.07.26 |
Git 변경이력 확인하기 (git blame) (2) | 2024.07.24 |
Git에서 특정 커밋으로 원복하기 (0) | 2024.07.24 |
Git Submodule 사용법 (0) | 2024.07.24 |