sourcetree를 사용하여 git rebase


83

SourceTree GUI를 사용하여 git rebase를 수행하는 방법에 대해 혼란스러워합니다. 두 개의 분기 "마스터"와 "개발"이 있습니다. 보시다시피 두 가지가 갈라졌습니다. 명령 줄을 사용하여 "dev"분기에 대한 rebase를 수행하고 싶습니다. 다음과 같습니다.

git checkout dev
git rebase master

여기에 이미지 설명 입력

"dev"를 마우스 오른쪽 버튼으로 클릭하고 "Rebase current changes into dev"를 선택합니다. 현재 변경 사항은 "마스터에 대한 새로운 커밋"을 의미한다고 가정합니다. 그러나이 옵션을 선택해도 아무런 효과가없는 것 같습니다. 올바른 단계는 무엇입니까?

답변:


117

그러나이 옵션을 선택해도 아무런 효과가없는 것 같습니다.

예, 현재 변경 사항은 현재 분기 중 하나 인 dev.

dev위에 리 베이스 dev는 작동하지 않음 을 의미합니다.

git checkout dev
git rebase master

현재 지점은 다음과 같습니다 의미 dev: 위에으로 업데이트 할 master.

따라서 SourceTree에서 마우스 오른쪽 버튼을 클릭하고 master( dev체크 아웃 하는 동안 ) 다음을 선택해야합니다.

Rebase current changes onto master

Howe코멘트에 추가합니다 .

" rebase current changes onto [branch]" 의 현재 이름 이 잘못되었습니다. 이 개선 논의를SRCTREE-1578 확인하십시오 .

기능 브랜치를 개발 및 실패와 함께 최신 상태로 가져 오려고하는 나 자신이 당혹스러워서 " rebase current changes onto $somebranch" 레이블이 붙은 왼쪽 창 컨텍스트 메뉴 항목이 실제로 그 이름이 제안하는 것과 반대임을
알게되었습니다. 현재 브랜치를 리베이스합니다. $ somebranch 주에;
$somebranch, 다른 방법이 아닌 현재 브랜치로 리 베이스 (또는 리 베이스 )됩니다. (권리?)

onto현재 텍스트 의 전치사 " "는 잘못된 것입니다. 이것은 문장의 목적 ( $somebranch제 예에서)이 변경을받을 것이라는 것을 의미합니다 .
실제로 발생하는 것은 그 반대입니다.
현재 브랜치의 이름이 없으면 혼란이 가중됩니다.

문장 구조를 개선하고 영향을받는 지점의 이름을 포함하는 단어 변경은 명확성을 위해 큰 도움이 될 것입니다.
예를 들면 :

rebase $currentbranch to head of $somebranch
rebase $somebranch onto $currentbranch

13
문맥 상, 반대표는 SourceTree를 전혀 다루지 않고 이전에 답변 을 게시 데드 맨의 것 입니다 . 나는 코멘트에서 내 비판을 비판하고 설명했다. 분명히 죽은 사람은 내가 한 건설적인 발언에 감사하지 않았습니다.
VonC 2016 년

1
마스터 브랜치가 변경됩니까? 마스터 브랜치의 최신 변경 사항으로 개발 브랜치를 업데이트하고 나중에 내 개발 브랜치를 마스터에 병합하고 싶습니다. 설명 된 방법이이 작업을 수행합니까?
Gerfried

2
@Gerfried 동의합니다. dev가 푸시되지 않는 한 마스터 위에 리베이스 할 수 있습니다.
VonC

14
Sourcetree는 더 명확한 설명을 위해 "최신 변경 사항을 Master에서 Dev로 Rebase"로 변경해야합니다.
Timo

3
현재 "현재 변경 사항을 [분기]로 리베이스"라는 이름은 잘못된 것입니다. 이 개선 논의를 확인하십시오 : jira.atlassian.com/browse/SRCTREE-1578 .
Zihao Zhao 2018 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.