나는 병합을 망쳤다. 되 돌린 후 다시 시도하고 싶습니다.
커밋되기 전에 병합을 되 돌리는 방법이 있습니까?
hg revert
내가 원하는대로하지 않고 파일의 텍스트 만 되돌립니다. Mercurial은 두 번째 병합 시도를 중단하고 원래 병합이 아직 커밋되지 않았다고 불평합니다.
hg merge
명령 후 커밋되기 전에 병합을 취소하는 방법이 있습니까?
답변:
hg update -C <one of the two merge changesets>
--clean
은의 동의어입니다 -C
. 어떤 변경 세트 .
가 참조 할지는 확실하지 않지만 항상 두 개의 병합 된 변경 세트 중 하나입니다.
.
는 병합을 시작하기 전에 어떤 개정을 사용하든 정리 해야합니다. 그래서 만약 당신이 r42에 있었다면, r43과 병합을 시도하고, 실패하고, 치료했다면, 당신은 원래의 r42로 돌아올 것입니다.
.
병합의 맥락에서 의 의미 는 다소 모호합니다.
을 수행 한 후 hg merge
이전 hg commit
에는 작업 복사본에 두 개의 상위가 있습니다. 첫 번째 상위는 병합 전에 업데이트 한 변경 집합이고 두 번째 상위는 병합 할 변경 집합입니다. Mercurial은 hg merge
귀하의 작업 카피에 두 명의 부모가있는 한 귀하 가 다시 는 할 수 없도록 합니다.
진행 방법에는 두 가지 옵션이 있습니다.
병합을 중단하고 시작한 위치로 돌아가려면 다음을 수행하십시오.
hg update -C .
이렇게하면 작업 복사본이 첫 번째 부모와 일치하도록 업데이트됩니다.는 .
항상 작업 복사본의 첫 번째 부모를 나타냅니다.
일부 파일 을 다시 병합 하려면 다음을 수행하십시오.
hg resolve fileA fileB
이렇게하면했던 것처럼 병합 도구가 다시 시작됩니다 hg merge
. resolve 명령은 hg merge
병합 도구가 잘못 구성되었음을 발견 한 경우 유용 합니다 hg resolve --all
. 구성을 수정하고 . hg resolve
병합에 만족할 때까지 원하는만큼 실행할 수 있습니다 .