나는이 문제를 만났다. 2 commit
를 만들고 두 커밋을 모두 롤백하고 삭제하고 싶었습니다.
$ hg rollback
그러나 hg rollback
두 커밋이 아닌 마지막 커밋으로 롤백합니다. 그 당시 나는 이것을 깨닫지 못했고 코드를 변경했습니다.
내가 hg rollback
한 커밋을 롤백 했을 때 사용할 수 있음을 알았습니다 hg strip #changeset#
. 그래서 나는 hg log -l 10
최근 10 개의 커밋을 찾고 내가 원하는 올바른 변경 세트를 얻었습니다 strip
.
$ hg log -l 10
changeset: 2499:81a7a8f7a5cd
branch: component_engine
tag: tip
user: myname<myname@email.com>
date: Fri Aug 14 12:22:02 2015 +0800
summary: get runs from sandbox
changeset: 2498:9e3e1de76127
branch: component_engine
user: other_user_name<name@email.com>
date: Mon Aug 03 09:50:18 2015 +0800
summary: Set current destination to a copy incoming exchange
......
$ hg strip 2499
abort: local changes found
무슨 abort: local changes found
뜻입니까? hg
아직 커밋되지 않은 코드에서 변경된 것을 발견 했음을 의미합니다 . 그래서,이 문제를 해결하려면 다음을 수행해야 hg diff
당신이 변경 한 코드 저장 hg revert
및 hg strip #changeset#
. 이처럼 :
$ hg diff > /PATH/TO/SAVE/YOUR/DIFF/FILE/my.diff
$ hg revert file_you_have_changed
$ hg strip #changeset#
위의 작업을 수행 한 후 patch
diff 파일을 사용하여 코드를 프로젝트에 다시 추가 할 수 있습니다.
$ patch -p1 < /PATH/TO/SAVE/YOUR/DIFF/FILE/my.diff