태그 보관물: git-rebase

git-rebase

피쳐 브랜치를 다른 피쳐 브랜치로 리베이스 기능 지점이 있습니다. a

작업중 인 두 개의 (개인) 기능 지점이 있습니다.

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


답변

  1. Branch2로 전환

    git checkout Branch2
    
  2. Branch2에 머무르면서 Branch1 변경 사항 위에 현재 (지점 2) 변경 사항을 적용하십시오.

    git rebase Branch1
    

Branch2에서 원하는 결과를 얻을 수 있습니다.

a -- b -- c                      <-- Master
           \
            d -- e               <-- Branch1
           \
            d -- e -- f' -- g'   <-- Branch2

Branch1을 삭제할 수 있습니다.


답변

참고 : 켜져있는 경우 Branch1Git 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

답변