magit으로 마스터로부터 간단한 리베이스?


11

방금 이전 버전을 몇 년 동안 사용한 Magit의 최신 버전으로 업그레이드했습니다. 조금만 둘러보고 차이점을 알아 낸 후 모든 개선 사항이 훌륭합니다.

이제는 가장 간단한 (비 대화식) 리베이스를 수행하려고하는데 magit어떻게 해야하는지 알 수 없습니다. 이 예는 https://git-scm.com/docs/git-rebase의 것 입니다.

git checkout topic
git rebase master
  1. 히트 r
  2. ?
  3. 내 토픽 브랜치는 master의 최신 변경 사항을 기반으로합니다.

3
"elsewhere"를 선택하고 ( "e"를 누름) "master"를 선택하십시오. 그냥 확인하십시오 : 당신이 당신의 지점 "항목을"리베이스됩니다 마스터 (하지 에서 ). On 은 Git이 "master"와 "topic"의 가장 어린 공통 조상을 찾은 다음 "master"의 변경 사항을 적용하기 위해 "topic"의 커밋을 작업합니다. 결국 "마스터"는 변경되지 않지만 "주제"는 "마스터"의 변경 사항을 포함합니다 (오류를 방지하기 위해 이것을 작성하고 있습니다. 즉, 마스터에서 rebasing하는 것이 반대라고 생각하는 경우).
wvxvw

2
지사에 업스트림을 설정하면 알려진 옵션을 입력 b한 다음 u반복해서 순환 할 수 있습니다 ( origin/master일반적인 것 r u). (를 통해 ) 기반 으로하는 기본 옵션이됩니다 .
phils


의견을 주셔서 감사합니다. 그것은 나를 위해 그것을 정리했다. Magit의 Rebasing 페이지를 읽었지만 이전에는 의미가 없었습니다. 나는 'onto'라는 단어가 문제라고 생각합니다. 이제 'r'을 사용하고 'e'를 사용하여 마스터의 최신 정보를 병합하지만 'b'로 업스트림을 설정하는 방법을 알고 있으면 'u'도 도움이되었습니다.
앤드류 Goodnough

@wvxvw 그 의견을 답변으로 바꾸어 주시겠습니까?
tarsius

답변:


17
  1. Magit 상태 버퍼에서 r (rebase) 를 누릅니다 . 더 많은 옵션이있는 팝업 버퍼가 표시됩니다.
  2. 다른 지점에서 리베이스를 시작하려면 e (다른 곳) 을 누르십시오 .
  3. 프롬프트에 응답하여 리베이스 할 브랜치를 선택하십시오 (참고 : 선택한 브랜치가 수정되지 않고 현재 브랜치입니다) .
  4. 다음 REBASE 프로세스가 시작되고 이제 REBASE 메뉴에서 더 많은 옵션이있을 것이다 r계속 (충돌을 해결 한 후) , a중단 (전체 REBASE 프로세스가 이전 REBASE에 되감기에 돌아올 것이다)s건너 예를 들어, 때로는 힘내 혼동됩니다 ( 커밋에 변경 사항이없는 것처럼 보이면 현재 브랜치와 대상 브랜치 모두 동일한 수정을 추가했을 때 발생할 수 있습니다) .
  5. 커밋은 대상 분기의 커밋에 적용됩니다. 그것들이 원활하게 적용되지 않으면 Magit 상태 버퍼에서 진행 상황과 충돌이 표시됩니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.