Development Tip

일부 변경 세트를 수은의 새 분기로 이동하는 방법

yourdevel 2020. 12. 30. 19:44
반응형

일부 변경 세트를 수은의 새 분기로 이동하는 방법


한 분기에서 다른 분기로 변경 집합을 이동하고 싶습니다. 기본적으로 현재 다음이 있습니다.

A -> B -> C -> D # default branch

그리고 나는 원한다:

A # default branch
 \-> B -> C -> D # some_new_branch

some_new_branch가 아직 존재하지 않는 곳. 나는 git에 익숙하기 때문에 내가 놓친 단순한 "수은"방법이 있다고 생각한다.


한 가지 방법은 B, C, D에 대한 패치를 내보내는 것입니다. A로 업데이트; 분기; 패치 적용 :

hg export -o patch B C D
hg update A
hg branch branchname
hg import patch

기본 브랜치에서 B, C, D를 제거하려면 mq 확장의 strip명령을 사용하십시오 .


git에서 체리 피킹 작업과 비슷하게 들립니다. 이식 확장 당신이 찾고있는 무엇을 할 수있다.


Mercurial Queue 사용 :

# mark revisions as draft in case they were already shared
#hg phase --draft --force B:D
# make changesets a patch queue commits
# (patches are stored .hg/patches)
hg qimport -r B:D
# pop changesets from current branch
hg qpop -a
# 
hg branch some_new_branch
# push changesets to new branch
hg qpush -a
# and make them commits
hg qfinish -a

코멘트를하지 않고:

hg qimport -r B:D
hg qpop -a
hg branch some_new_branch
hg qpush -a
hg qfinish -a

이식 또는 패치로 대체, 당신은 사용할 수 이식 .

hg update A
hg branch branchname
hg graft -D "B:D"
hg strip B

역사를 바꾸는 것은 나쁜 습관입니다. 아직 밀지 않은 경우에만 벗겨야합니다. 그렇지 않으면 변경 사항을 취소 할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/2219756/how-to-move-some-changeset-to-a-new-branch-in-mercurial

반응형