[Git] 현재 commit과의 다른점에 대해 Patch 남겨두기
2025. 9. 4. 22:46ㆍDevelopers 공간 [Shorts]/Software Basic
728x90
반응형
<분류>
A. 수단
- OS/Platform/Tool : Linux, Kubernetes(k8s), Docker, AWS
- Package Manager : node.js, yarn, brew,
- Compiler/Transpillar : React, Nvcc, gcc/g++, Babel, Flutter
- Module Bundler : React, Webpack, Parcel
B. 언어
- C/C++, python, Javacsript, Typescript, Go-Lang, CUDA, Dart, HTML/CSS
C. 라이브러리 및 프레임워크 및 SDK
- OpenCV, OpenCL, FastAPI, PyTorch, Tensorflow, Nsight
1. What? (현상)
아직 Commit을 만들지 않았는데 여태까지 HEAD로부터 변경된 사항을 공유하고 싶거나, 오픈소스를 직접 관리하고 싶지 않은데 소량의 수정이 필요한 경우 패치(Patch)를 만들어 저장해둘 수 있습니다.
이런 과정을 간단히 기록하려고 합니다.
2. Why? (원인)
- X
3. How? (해결책)
먼저 상황을 가정하면 현재 HEAD이후에 수정한 내용에 대해서만 패치로 남겨놓고 싶으며, 수정된 내용을 commit하지는 않았습니다.
이 상황에서 HEAD와의 다른 점을 패치로 기록하는 코드는 아래와 같습니다. 상위 폴더에 저장하겠습니다.
git diff > ../b-changes.patch
이제 다른 서버에서 같은 HEAD를 가진 git을 가지고 패치를 적용하고 싶습니다. 똑같이 상위 폴더에 위치해놨다면 아래와 같이 적용할 수 있습니다.
git apply ../b-changes.patch
위는 HEAD에서 작업한 경우를 의미하는데, 다른 commit에서 작업하는 경우도 있습니다.
따라서 직접 다른 commit에서 작업하는 것보다는 HEAD의 commit ID를 명시해서 위와 같은 과정을 반복해보겠습니다.
먼저, commit ID를 알아내기 위해 git rev-parse를 활용해 거나 아래 그림과 같이 git log를 활용해 모든 ID들을 프린트해봅니다.
git rev-parse HEAD
# fd55536cc812c460ecc421220864993c7f168182
git log --oneline —graph
# fd55536

내가 작업하고 있는 commit의 ID를 알아내고 나면 해당 commit과의 (지금은 HEAD) 다른점을 패치로 기록해보겠습니다. 역시나 상위 폴더에 저장하겠습니다.
git diff fd55536cc812c460ecc421220864993c7f168182 > ../b-changes.patch
적용하는 것은 위와 같습니다.
git apply ../../b-changes.patch
728x90
반응형
'Developers 공간 [Shorts] > Software Basic' 카테고리의 다른 글
| [Bash] Ubuntu에서 갑자기 해상도가 낮아졌다 (0) | 2025.08.22 |
|---|---|
| [Bash] Ubuntu 설치 하기 (1) | 2025.07.27 |
| [PyTorch] 학습시 Gradient Exploding을 막기 위한 몇 가지 조치 (0) | 2025.07.24 |
| [Bash] Ubuntu에 /etc/fstab 셋팅하기 (0) | 2025.07.05 |
| [Bash] Ubuntu에 Docker 설치하기 (0) | 2025.06.29 |