아래는 이 작업과 관련한 스크린캐스트이다.
위 작업에서 사용된 커맨드는 다음과 같다.
1. 현재 브랜치와 다른 브랜치끼리의 차이점 비교
$ git diff BRANCH_NAME하지만 좀 내용이 많아서 차이점이 많을 경우 정신붕괴의 위험(...)이 있을 수 있으므로 간단하게 표시하는 방법을 찾아보자. 다행히도 --name-status 라는 옵션이 있다.
$ git diff --name-status BRANCH_NAME
2. 파일 머지하기
$ git checkout -p BRANCH_NAME FILE_PATHcheckout 시 -p 옵션을 주면 Patch 형태로 동작한다. 따라서 다른 브랜치의 특정 파일을 현재 브랜치의 파일로 패치 할 수 있다. 다만 이 기능은 머지가 아니라 패치이므로 현재 브랜치의 수정 내역과는 관계 없이 해당 파일의 내용으로 변경된다. 만약 수동으로 머지하길 원한다면 이 커맨드 이후 물어오는 화면에서 'e' 키를 눌러서 수동으로 편집하는 방법이 있다.
3. 파일 복사해오기
$ git checkout BRANCH_NAME FILE_PATH현재 브랜치에 스테이징 되어 있지 않은 새로운 파일이 다른 브랜치에 있고 이 파일을 복사해 오려면 그냥 -p 옵션을 빼고 checkout 을 하면 된다.
자주 사용 할 만한 기능 같은데 더 단순한 방법이 있을지도 모르겠다. 좀 더 찾아봐야겠다.
[관련링크] Git - Seorenn Note
[관련글] [Emacs] Magit을 이용해 다른 브랜치의 일부 파일 머지하기
0 comments:
댓글 쓰기