작업중 인 두 개의 (개인) 기능 지점이 있습니다.
a -- b -- c <-- Master
\ \
\ d -- e <-- Branch1
\
f -- g <-- Branch2
이 지점에서 약간의 작업을 한 후에 Branch1의 Branch2에서 변경이 필요하다는 것을 알았습니다. Branch2의 변경 사항을 Branch1로 리베이스하고 싶습니다. 나는 다음과 같이 끝내고 싶다 :
a -- b -- c <-- Master
\
d -- e -- f -- g <-- Branch1
두 번째 분기 를 첫 번째 분기 로 리베이스해야한다고 확신 하지만 올바른 구문과 체크 아웃 해야하는 분기에 대해 완전히 확신하지 못합니다.
이 명령으로 원하는 결과를 얻을 수 있습니까?
(Branch1)$ git rebase --onto Branch1 Branch2
답변
-
Branch2로 전환
git checkout Branch2
-
Branch2에 머무르면서 Branch1 변경 사항 위에 현재 (지점 2) 변경 사항을 적용하십시오.
git rebase Branch1
Branch2에서 원하는 결과를 얻을 수 있습니다.
a -- b -- c <-- Master
\
d -- e <-- Branch1
\
d -- e -- f' -- g' <-- Branch2
Branch1을 삭제할 수 있습니다.
답변
참고 : 켜져있는 경우 Branch1
Git 2.0 (Q2 2014)을 사용하여 다음을 입력 할 수 있습니다.
git checkout Branch2
git rebase -
참조 4f40740 커밋 에 의해 브라이언 Gesiakmodocache
:
rebase
: -
이전 분기의 ” “속기 허용
가르치고 현재 지사에 지사
checkout
와 같은 속기merge
를 사용rebase
하십시오. 즉, ”-
“는 “이전에 있었던 지점”을 의미합니다.
답변
나는 당신이 Rebase에게 요청한 것을 알고 있지만 대신 Branch2에서 Branch1로 옮기고 싶은 커밋을 Cherry-Pick합니다. 그렇게하면 마스터에서 어떤 브랜치를 만들 었는지 신경 쓸 필요가 없으며 병합을 더 잘 제어 할 수 있습니다.
a -- b -- c <-- Master
\ \
\ d -- e -- f -- g <-- Branch1 (Cherry-Pick f & g)
\
f -- g <-- Branch2