2017-02-27 14 views
0

하나의 변경 집합에서 여러 개의 개별 블록이 변경된 파일이 있습니다. (가장 최근의 변경 집합이 아닙니다.)Mercurial의 특정 변경 사항을 되돌리기 위해 권장되는 방법은 무엇입니까?

이제 이러한 블록 중 하나만 변경하여 해당 변경 바로 전의 개정 상태로 되돌려 야합니다. 이를 위해 권장되는 절차는 무엇입니까? Mercurial/TortoiseHg가 도움을 제공합니까, 아니면 수동으로이 블록을 이전 내용으로 대체해야합니까?

답변

1

변경 집합 전체를 실행 취소하려면 수동 작업없이 hg backout을 사용하면됩니다. 의 도움에서 :

HG의 철회 [옵션]을 ... [-r] REV

현재 에 REV의 취소의 효과로 새로운 변경 집합을 준비 이전 변경 집합의

역 효과 작업 디렉토리. 충돌이 발생하지 않은 경우 즉시 을 커밋합니다.

REV가 작업 디렉토리의 부모 인 경우이 새로운 변경 집합은 --no-commit이 지정되지 않은 한 이 자동으로 커밋됩니다.

참고 : 'hg backout'은 원하지 않거나 올바르지 않은 병합을 수정하는 데 사용할 수 없습니다.

당신은 단지 하나의 덩어리가 되돌아가는 것을 원치 그러나, 당신은 hg backout을 사용할 수 있습니다 그리고 당신은 당신이 바로 그 덩어리 (들) 약속 할를 선택할 수 있도록 커밋의 --interactive 플래그를 사용해야합니다

hg commit --message "Revert some stuff" --interactive 

마지막으로 작업 디렉토리를 수정하지 않은 상태로 되돌립니다. 남아있는 헌트를 다시 변경하지 않으려합니다.