magit 파일에서 우리 / 그들의 그들의 체크 아웃하는 방법?


16

병합 충돌이 있다고 가정 해 봅시다. 다음과 같이 충돌하는 파일이 있습니다.

Unstaged changes:
    Unmerged   Foo/bar/wibble/plop/elbow.txt

여기 탭을 눌러 변경 사항을 열고 파일 내부의 특정 지점으로 이동하여 손으로 해결할 수는 있지만 시간이 많이 걸리는 충돌이 많은 큰 파일 인 경우.

충돌을 해결하기 위해 git에게 magit을 통해 파일 버전이나 파일을 체크 아웃하도록 요청할 수 있습니까? 경로를 복사 한 다음 Shift-:사용자 정의 git 명령을 입력하는 데 사용할 수 있지만 키보드 단축키가 있어야합니다. magit 메뉴 나 ?팝업 에서 분명한 것을 볼 수 없습니다 .


3
이것은 귀하의 질문에 직접 대답하지는 않지만 유용 할 수 있습니다. 충돌 파일의 포인트를 이동 magit-status하고 e를 눌러 3 방향 병합을 시작 ediff합니다. 또 다른 대안은 충돌 버퍼에서 smerge-mode충돌 강조 표시를 켜고 버퍼에서 바로 대화식 병합을 수행 할 수 있다는 것입니다 (ediff 아님). smerge-mode관련 명령 의 접두사 키 바인딩 은 C-c ^; 를 눌러 C-c ^ C-h모든 키 바인딩을 볼 수 있습니다 .
Tu Do

문서에서 "우리"또는 "그들의"도 찾지 못했습니다. magit.github.io/master/magit.html#Pushing-and-Pulling
Ehvince

1
기능 요청을 여는 좋은 질문처럼 보입니까?
Ehvince

1
좋은 생각 @Ehvince, done : github.com/magit/magit/issues/1643
tenpn

1
Oooh : 다음 버전의 magit k에서는 확실하게 유지할 버전을 선택할 수 있습니다. 완벽 해! github.com/magit/magit/issues/1643
tenpn

답변:


16

이 기능이 언제 추가되었는지 잘 모르겠지만 완벽하게 수행합니다.

  1. 한 지점을 다른 지점으로 병합하고 충돌 발생
  2. Magit 버퍼에는 Merging master, 및 Unstaged changes, 섹션이 있습니다 Staged changes. 충돌 파일이Unstaged changes
  3. 충돌 한 파일이있는 행 k에서 변경 사항 (예 : 충돌 된 변경 사항)을 버리려면 누르십시오.
  4. 미니 버퍼에서 답을 볼 수 있습니다 :

For <conflicted file> checkout: [o]ur stage, [t]heir stage, [c]onflict, or [C-g] to abort


5

몇 가지 해결책이 있습니다.

  • smerge-ediff를 사용하십시오. 충돌이있는 파일에서을 실행 M-x smerge-ediff합니다. ediff resolve 모드로 전환되며, 네 개의 열린 버퍼 : yours, 그들의 버퍼, 병합 및 명령 버퍼가 있습니다. 명령 버퍼에서 사용할 np다음 또는 이전 덩어리로 이동, "a"또는 "b"를 첫 번째 또는 두 번째 버퍼에서 변경 사항을 적용하기 위해, 또는 병합 버퍼에 갈 수 및 편집이 원하는대로.
  • 와, magit에서는 Ediff 사용 emagit의 안정 버전, 또는 M-e또는 M-m( magit-ediff-resolve) magit의 다음 지점에서, 다음 주로 첫 번째 경우처럼 자신을 발견 할 것이다
  • 이 smerge 모드는 또한, C-c ^ n그리고 C-c ^ p당신이 다음 편집 그들을 또는 사용 할 수 있습니다, 당신은 이전 또는 다음 하나에 덩어리에서 이동 도움이 될 것입니다 C-c ^ o, '기타'버전을 유지하는 C-c ^ m'내'버전을 유지하기 위해, C-c ^ b기존을 유지하기 위해 버전과 C-c ^ a모두를 유지합니다.
  • magit-find-file을 사용하여 커밋 중에 파일을 열 수 있습니다.

나는 Tu Do가 이미 내가 여기에 게시 한 대부분의 답변을 가지고 있음을 보지 못했습니다. Sory
Rémi

포괄적 인 목록에 감사드립니다. 그러나 "Ours 또는 Thiers 버전을 얻는 간결한 방법이 있습니까?" :(
tenpn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.