Magit-전체 지점 이름을 입력하지 않고 원격 지점을 로컬에서 체크 아웃하려면 어떻게해야합니까?


12

나는 원격 지점이 remote-branch-long-name있습니다. 나는 투구 완료로 체크 아웃 magit 때 나는 입력 할 수 있습니다 remote-branchorigin/remote-branch-long-name옵션으로 표시됩니다. 문제는이 지점을 로컬로 체크 아웃하려면 실제로 해당 지점으로 전환 할 수 없으며으로 전환해야합니다. remote-branch-long-name (without the origin/ prefix)조타가 완료 옵션으로 제공하지 않기 때문에 전체 지점 이름을 수동으로 입력해야합니다.

이 유스 케이스에 사용해야 할 다른 함수가 있습니까? 아니면 함수를 함께 해킹해야합니까?

답변:


22

해결하려는 문제가 현재 발생한 문제가 아닌 것 같습니다. Git은 원격 브랜치로 로컬에서 작업 origin/remote-branch-long-name할 수 없으며 (추적 브랜치 일 뿐이며 직접 작업 할 수는 없습니다) Magit은 의도 한 워크 플로를 안내합니다.

당신과 함께 일하기를 원한다면 origin/remote-branch-long-name아마도 magit-branch-and-checkout( b c)를 실행해야합니다 . 선택 origin/remote-branch-long-name하면 로컬 지사 이름을 입력하라는 메시지가 표시되고 기본적으로 "원격 지사 이름"으로 설정됩니다. 이를 통해 로컬 지점에서 변경해야합니다. 변경이 완료되면 푸시 origin/remote-branch-long-name하면 원격 추적 분기가 업데이트됩니다.

슬래시가있는 로컬 브랜치를 가질 수 있지만 로컬 브랜치 이름에 원격 이름을 사용하면 상황이 매우 혼란 스러울 수 있습니다. 힘내 로컬 지점을 체크 아웃 한 원격을 기억하므로 직접 추적 할 필요가 없습니다.

여기 내 답변 (!)보다 더 자세한 설명을 보려면이 페이지 가 리모컨에 대한 좋은 개요입니다.


8
여기서 분리는 Magit 흐름이 git 흐름과 다르다는 것입니다. 당신이 실행하는 경우 git checkout foo, 그리고 foo지점이 아니라 origin/foo입니다, 자식은 새로운 지점을 만들 것입니다 foo및 추적하도록 설정 origin/foo. git은 "나는 단지 체크 아웃 foo하고 git은 필요한 모든 것을 수행한다" 라고 생각하도록 가르칩니다 . 그러나 이것은 magit에서는 작동하지 않습니다. 달리는 magit-branch-and-checkout길입니다.
zck

4

magit v2.12.0부터 (Checkout local branch)에 magit-branch-checkout바인딩 된 명령이 있습니다.이 명령 b l은 원하는 것을 정확하게 수행합니다. 자세한 내용 은 문서 를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.