커밋되지 않은 변경은 본질적으로 나쁜 것이라고 생각하지 않습니다. "파일과 병합 할 수 없음"을 참조하십시오. 일부 파일에 커밋되지 않은 변경 사항이 있고 해당 파일의 변경 사항을 가져 와서 업데이트하면 Mercurial은 마치 커밋 한 것처럼 병합 프로세스를 시작한 다음 요청합니다. 합병. 다른 의미였습니까?
따라서 다른 개발자와 공유하고 싶지 않은 로컬 변경의 경우 두 가지 접근 방식이 있습니다. 첫 번째는 변경 사항을 작업 사본에 유지하지만 밀어 넣지 말고, 다른 하나는 작업 사본에서 변경 사항을 제쳐 두는 것입니다. 선택하는 것은 작업 할 때 이러한 변경 사항을 사용할지 여부에 따라 다릅니다.
변경 사항을 작업 복사본에 보관하면 들어오는 변경 사항이 제대로 작동하므로 나가는 변경 사항을 만들지 않아도되므로 커밋하지 않아도됩니다. 파일이 새 파일이면 간단 hg add
합니다. 하지 마십시오 . 이미 추적 된 경우을 사용하여 커밋에서 제외 할 수 있습니다 hg commit --exclude foo.txt
. 제외 할 파일이 많거나 많은 커밋에서 제외시킬 경우 (예 : 로컬 구성 파일을 영구적으로 변경하는 경우) 제외 확장자를 확인하십시오 .
변경 사항을 제쳐 놓을 준비가 된 경우 다른 옵션 세트가 있습니다. 가장 간단한 방법은 hg diff
파일 을 사용 하여 파일을 설명하는 패치를 생성하는 것입니다.이 패치는 안전한 곳에 보관 한 다음 hg patch --no-commit
변경 사항을 다시 원할 때 해당 패치를 다시 적용하는 것입니다. 선반 확장 장치 , 다락방 확장 장치 또는 기타 친척 을 설치하여이 작업을 더 매끄럽게 만들 수 있습니다 . queues extension을 사용할 수도 있지만 슬레지 해머를 사용하여 너트를 깨고 있습니다. 변경 사항을 커밋 한 다음 부모로 다시 업데이트하고 거기에서 다른 작업을 커밋하여 변경 사항을 익명의 익명 브랜치에 남겨 hg commit -m 'temporary branch' && hg up $(hg log -r 'parents(.)' --template '{node}')
두십시오 (수동으로 수행하는 것이 더 쉬울 수도 있음). 그러면 해당 변경 세트를 푸시하지 않도록주의해야합니다.