git
git - 다른 브랜치의 일부 파일만 가져오기 (merge)
Shong Studio
2024. 3. 31. 20:34
728x90
반응형
Git으로 특정 feature branch를 만들어 작업을 하다보면 다른 브랜치의 일부 파일의 코드가 필요한 상황을 마주하는 경우가 있습니다.
그 땐 아래와 같은 방법으로 특정 수정만 merge할 수 있습니다.
1. 브랜치 간의 차이 비교
$ git diff {BRANCH_NAME}
diff되는 부분이 너무 많으면 확인하기 어렵기 때문에 아래의 --name-status 옵션을 넣어 파일만 확인할 수 있습니다.
$ git diff --name-status {BRANCH_NAME}
2. 파일 Merge하기
$ git checkout -p {BRANCH_NAME} {FILE_PATH}
원하는 파일을 위와 같은 커맨드를 이용해서 가져오시면 됩니다.
※ 참고 : checkout 할 때 -p 옵션을 주면 Patch 형태로 동작한다.
따라서 다른 브랜치의 특정 파일을 현재 브랜치의 파일로 패치 할 수 있다.
다만 이 기능은 머지가 아니라 패치이므로 현재 브랜치의 수정 내역과는 관계 없이 해당 파일의 내용으로 변경된다.
만약 수동으로 머지하길 원한다면 이 커맨드 이후 물어보는 화면에서 'e' 키를 눌러서 수동으로 편집이 가능하다.
3. 파일 복사해오기
$ git checkout BRANCH_NAME FILE_PATH
현재 브랜치에 스테이징 되어 있지 않은 새로운 파일이 다른 브랜치에 있고 이 파일을 복사해 오려면 그냥 -p 옵션을 빼고 checkout 을 하면 된니다.
728x90
반응형