참조: http://stackoverflow.com/questions/2219756/how-to-move-some-changeset-to-a-new-branch-in-mercurial
질문자:
현재 상황은
A -> B -> C -> D # default branch
이렇게 되어있는데, 이것을
A # default branch
\-> B -> C -> D # some_new_branch
이런 구조로 바꾸고 싶다.
그런데 아직 새 브랜치가 없는 상태에서 새 브랜치를 만들어서 기존 커밋 내용을 옮기고 싶다.
가장 많이 추천을 받은 답변의 내용은 브랜치를 바꿀 B, C, D 커밋을 패치로 내보낸 다음에 새 브랜치를 만들어서 새 브랜치에서 패치를 가져오고 기존 브랜치에서는 B, C, D 커밋을 삭제하는 것.
1.
해당 디렉토리의 커맨드 창을 연다.
1-1. 이미 버전관리를 쓰는 사람이라면 개발자일테니 기본 터미널 열어서 디렉토리 이동하는 법은 설명하지 않는다.
1-2. TortoiseHg를 주로 이용하는 개발자라면 프로젝트 이름에서 오른쪽 클릭해서 Terminal 선택하면 손쉽게 선택 가능하다.
2.
옮길 리비전을 patch로 내보낸다.
hg export -o patch B C D
(B C D에 들어갈 값은 리비전 번호를 쓰면 된다)
3.
브랜치가 갈라지는 곳으로 돌아간다.
hg update A
4.
새 브랜치를 생성한다.
hg branch branchname
5.
패치로 내보낸 리비전 내용을 새 브랜치로 가져온다.
hg import patch
+
새 브랜치로 옮긴 커밋 리비전들이 기존 브랜치에 남아있는 게 보기 싫다면 MQ를 이용해서 커밋 내용을 삭제하면 된다.
2015/02/17 - TortoiseHg 상에서 잘못된 커밋 삭제하기 이 게시물 참조
++ 원래 브랜치로 돌아오고 싶다면 다시
hg update A
그림으로 표현하면 대략 이런 과정이 되지 않을까 한다.
'엥그니어링 > 도움글' 카테고리의 다른 글
HDMI로 모니터 연결했을 때 화면 테두리 남는 현상 해결 (3) | 2015.02.24 |
---|---|
리눅스 팁 모음 (0) | 2015.02.23 |
TortoiseHg 상에서 잘못된 커밋 삭제하기 (0) | 2015.02.17 |
크롬 글자 간격 문제 해결 (0) | 2015.02.16 |
우분투 서버에 이클립스 설치 (0) | 2015.02.16 |
WRITTEN BY
- Chaz
서울소재 모 대학교 공대 졸업하고 일개미가 된 일명 비둘기가 거주하는 곳입니다
,