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
반응형