Mercurial과의 협력이 처음입니다. 내 상황 :
- 다른 프로그래머가 파일의 rev 1을 변경하여 4 칸 들여 쓰기를 2 칸 들여 쓰기로 바꿨습니다. (즉, 모든 회선을 변경했습니다.) rev 2를 호출하여 원격 저장소로 밉니다.
- 로컬 작업 공간에서 다양한 코드 변경 사항을 사용하여 실질적인 변경 사항 개정 1을 커밋했습니다. 레브 3을 부르십시오.
- 나는 무슨 일이 일어나고 있는지에 대한 명확한 생각없이
hg pull
에드와hg merge
D를했습니다. - 갈등은 무수하고 실제로는 아닙니다.
따라서 병합하기 전에 로컬 리포지토리를 2 칸 들여 쓰기로 변경했으면합니다. 그런 다음 합병은 사소한 것입니다. 그러나 나는 백업 할 수없는 것 같습니다. 나는 필요하다고 생각 hg update -r 3
하지만 말한다 abort: outstanding uncommitted merges
.
병합을 취소하고 로컬 리포지토리의 간격을 변경 한 후 다시 병합하려면 어떻게해야합니까?
답변
-C (또는 –clean) 플래그를 사용하여 커미트되지 않은 변경 사항을 버릴 수 있습니다.
hg update -C -r 3
주의 : 커밋되지 않은 모든 것은 사라질 것입니다!
그 후에는 일종의 코드 포맷터 도구를 사용하여 전체 작업을 수행하거나 적어도 일부는 정규식으로 찾아서 바꿔야합니다. 일치하는 항목 ^____
(밑줄 대신 4 개의 공백 사용)을 __
(2 개의 공백) 으로 바꾸는 것만 큼 간단하지만 몇 번 반복하면 (중간 적으로 중첩 된 코드가없는 한) 작동합니다.
답변
BTW : 병합을 되돌리고 3이 개정 번호가 아닌 경우 다음을 수행 할 수 있습니다.
hg update -C -r .
답변
커밋되지 않은 병합을 취소하려면
hg update --clean
원본 병합 부모의 깨끗한 복사본을 확인하여 모든 변경 내용을 잃게됩니다.
답변
나는 단지 내 필요에 hg update -C -r 3
따라 rev를 사용하여 로컬 파일을 덮어 썼다 (이것은 내가 hg update
할 것이라고 생각 했지만 잘못되었다.) 내 도움에 감사드립니다!