의욕

2012-08-25 4 views
14

에 "공개"변경 집합을 수정하는 방법 나는 마지막 커밋 내 개정을 좋아하지만,의욕

hg commit --amend 

실행 줄 것은 내가 편집하는 것이 안전 것을 알면서도 나에게

abort: cannot amend public changesets 

을 제공합니다 변경 집합. 마지막 커밋의 단계를 어떻게 바꿀 수 있습니까? 아니면 Mercurial에게 수정하는 것이 안전하다고 말할 수 있습니까?

답변

27

Mercurial 위키에는 overview of phases이 있습니다.

는, 현재는 "초안"을 "공개"에서 커밋 개정을 허용하기 위해 커밋 변환

hg phase --draft --force . 

사용 (또는 다른 변경 집합을 편집 할 경우 다른 버전으로 . 교체)합니다.

+0

업스트림을 푸시해도 여전히 두 개의 커밋 기록이 생성되고 로컬 'hg log'는 두 번의 커밋을 확인합니다.이 문제를 해결할 방법이 있습니까? 따라서 수정 된 커밋 만 표시됩니까? –

+4

아니요, 변경 집합을 밀어 넣었다면 수정해서는 안됩니다. 따라서 hg가 그렇게하지 못하게하는 것입니다. (경우에 따라서는 다른 개인 repo에 푸시되었다는 것을 알고 있습니다.이 경우에는이 대답이 유용합니다.) –

+1

@Daniel Sokolowski, 당신은 실행 취소/롤백을 사용하여 첫 번째 커밋의 푸시를 제거 할 수있었습니다. 업스트림 저장소. 그러나 더 많은 변경 세트를 푸시하기 전에 신속하게 수행해야합니다. –