커밋되지 않은 변경 집합이 있습니다. 나는 내가 현재 잘못된 브랜치에 있다는 것을 알아 차렸다. 그래서 내가 커밋하기 전에, 내가 가고자하는 브랜치로 전환하고 싶다.Hg가 거의 잘못된 지점으로 연결됨
Hg에서 얼마나 어려운가?
커밋되지 않은 변경 집합이 있습니다. 나는 내가 현재 잘못된 브랜치에 있다는 것을 알아 차렸다. 그래서 내가 커밋하기 전에, 내가 가고자하는 브랜치로 전환하고 싶다.Hg가 거의 잘못된 지점으로 연결됨
Hg에서 얼마나 어려운가?
는, 당신은 단지
hg update right-branch
발행 할 수 있으며, 의욕이 대상 버전으로 작업 복사본의 변경 사항을 병합합니다.
완전 병합 도구 인 기계을 사용하면 이름 변경과 같은 사항이 고려되므로 충돌하는 경우 3 방향 병합 프로그램을 사용할 수 있습니다. 선반 및 차등 기반 접근 방식에는이 기능이 없으므로 .rej
파일을 사용하여 직접 충돌을 해결해야합니다. hg resolve --list
으로 현재 병합 상태를 확인하고 Mercurial에서 필요한 백업을 수행하므로 선택한 파일을 다시 병합 할 수도 있습니다.
직선 경로가없는 경우, 당신은이 경고를 얻을 것이다 :
abort: crosses branches (merge branches or use --clean to discard changes)
그런 다음 먼저 공통 조상에 다시 업데이트 한 다음 다시 앞으로 업데이트하여 원하는 것을 얻을 수 있습니다. 나는 왜 우리가이 경고를 내뱉는 지 100 % 확신하지는 않지만, 궁금하다면 메일 링리스트 아카이브를 검색하면 답을 얻어야한다.
불행하게도 의욕은 임시 커밋해야하고 적절한 지점에 전송이 rebase
또는 tramsplant
을 사용하거나 DIFF을 수동으로 적용하도록 상자 밖으로 선반 지원하지 않습니다. 또한 타사가, 확장을 보류 https://www.mercurial-scm.org/wiki/ShelveExtension 및
https://www.mercurial-scm.org/wiki/AtticExtension 당신이 TortoiseHg를 사용하는 경우, 그것은 THG의 선반 능력 (http://tortoisehg.bitbucket.io/manual/2.9/shelve.html)를 달성하기 위해 매우 쉽게 볼 수 있습니다. 커밋 대화 상자에서 Shelve 버튼 (아이콘이 Z가 겹쳐진 파일)을 클릭하고 이중 오른쪽 화살표를 클릭하여 모든 변경 사항을 제거합니다. 쉘브 대화 상자를 닫고 올바른 변경 집합으로 업데이트 한 다음 쉘브 대화 상자를 열고 이중 왼쪽 화살표를 클릭하여 쉘브 대화 상자를 제거하십시오.
THG를 사용하지 않는 경우 hgshelve 확장 프로그램 (https://www.mercurial-scm.org/wiki/ShelveExtension)을 설치할 수는 있지만 잘 모르겠습니다.
또한 Mercurial Queues (http://mercurial.808500.n3.nabble.com/Shelve-extension-td802439.html)와 동일한 결과를 얻을 수 있습니다.
당신은 선반 확장하지 않고이 작업을 수행하고자하는 경우는 다음을 수행하십시오 ../work_in_progress.patch
가 원하는 경로 (나는 보통 내 저장소 위에 내 패치를 저장) 할 수 있습니다
hg diff --git > ../work_in_progress.patch
hg up desired-branch
hg import --no-commit ../work_in_progress.patch
및 desired-branch
입니다 실제로 변경 사항을 적용하려는 지점.
당신이있는 지사와 당신이가는 지사가 서로 다르면 패치가 원활하게 적용되지 않으면 내가 발견 한 해결책이 모두 사라지기 시작합니다. 이 경우 수동으로 충돌을 해결해야합니다. 현재 부모 개정 및 대상 버전 사이의 직선 경로가있는 경우
나는 Mercurial이 Git과 매우 유사하다고 생각한다. 그래서 두 가지 옵션이 있다고 생각합니다. 추가하고 변경 한 모든 파일을 수동으로 저장하고 분기를 전환 한 다음 파일 시스템 맨 위에 복사합니다.또는 현재 브랜치의 변경 사항을 커밋하고, 실제로 원하는 브랜치로 전환하고 이전 브랜치에서 변경 사항을 병합합니다. –