2014-07-11 3 views

답변

0

그냥 BRANCH_A는 "HEAD 50 개 커밋"의 상태에 있어야한다고 가정하면 그 커밋은 역사에 나타나는 경우에 당신이 상관 없어, 여기에 간단한 해결책이다 가지고 들어

모든 당신이 BRANCH_A의 HEAD로 전환하고있는 새로운 변경 집합을 커밋 할 수

$ hg branch BRANCH_B 

BRANCH_A에 이전 상태를 복원 : BRANCH_A의 HEAD에있는 동안 당신은 단순히이 분기를 만들 수있는 새로운 지점 BRANCH_B에 커밋 원하지 않는 모든 작업을 취소하십시오.이 작업은 hg backout을 통해 수행됩니다 :

$ hg update BRANCH_A 
$ hg log -r 'branch(BRANCH_A) and head()~50 and not merge()' 
$ hg backout -r 'branch(BRANCH_A) and head()~50 and not merge()' 
$ hg commit -m"removed from .. to .." 

비슷한 영역에서 변경이있는 경우 충돌이 발생할 수 있습니다.

히스토리를 다시 쓰려면 rebase를 사용하거나 확장명을 바꾸거나 커밋을 제거하기 위해 확장자를 변환 할 수 있습니다. 로컬에서만 작업하거나 사용되는 서버로 푸시해야하는 경우 다른 사람들도 마찬가지입니다 (이 경우 기록을 다시 쓰는 것은 권장되지 않습니다). 간단하게 편집 역사없이

+0

로 번역 BTW, 당신이 명령 세트가 잘못 (3/5)에 대한 영업 이익의 "이 전에 커밋 이전으로 복귀" 태스크 –

0

: BRANCH_A의 끝

  1. 닫습니다.
  2. BRANCH_A의 닫힌 팁에서 BRANCH_B라는 이름을 만듭니다.
  3. 50 커밋 이전의 노드에서 시작하여 BRANCH_A에 대한 새 커밋을 체크인하십시오.

TortoiseHg image of the idea, with one commit representing the "50"