나는 master /와 1.7 /에 2 개의 브랜치를 가지고 있습니다. 나는 체리 피크를 사용하여 마스터/1.7 /로 수정했다. (나는 단지 일부 변경을 원하기 때문에 병합 사용하지 않는.) :master에서 branch로 cherry-pick 할 때 반복 커밋을 피한 다음 분기에서 master로 다시 병합하십시오.
$ git checkout 1.7
$ git cherry-pick -x <initial commit SHA>..<master change 2 SHA>
을 그리고 나중에, 나는, 마스터/1.7/다시 병합 나는에 갔다 모든 변경 사항을 원하기 때문에 1.7/(다시 메인 라인에 병합하는) 벚꽃-종목의 themeselves 제외 :
$ git checkout master
$ git merge 1.7
내 문제는이 다시 마스터 /로)/원래 마스터에서 (체리 - 픽 재 - 커밋이다 :
$ git log --oneline
8ecfe22 Merge branch '1.7'
fe3a60d master change 2 (cherry picked from commit f5cca9296e45d5965a552c45551157ba
9c25f53 master change 1 (cherry picked from commit 8fae2a68a356f5b89faa8629b9a23b23
f5cca92 master change 2
8fae2a6 master change 1
ffa10bf initial commit
내 진짜로 심지어 그것은 병합 충돌을 일으켰다.
내 질문은 그렇습니다. 그렇다면 어떻게해야합니까? 당신이 빨리 감기 옵션 -ff
을 사용하지 않는
$ git init
<create Dialog.js file>
$ git add Dialog.js
$ git commit -am "initial commit"
$ git branch 1.7
<edit Dialog.js file>
$ git commit -am "master change 1"
<edit Dialog.js file>
$ git commit -am "master change 2"
$ git log
$ git checkout 1.7
$ git cherry-pick -x <initial commit SHA>..<master change 2 SHA>
$ git checkout master
$ git merge 1.7
$ git log
그래, 나는 rebase가 작동한다고 상상할 수 있지만, git 커뮤니티에서는 브랜치에서 리베이스를 호출하는 것이 필사적 인 죄라고 간주됩니다. 다른 접근 방법이 있습니까? "git merge"를 사용하여 변경 사항을 master/1.7에서 /로 옮길 수 있습니까? rebase -i와 유사한 -i 옵션과 비슷합니까? 그리고 내가 그 일을한다면, 마스터로부터 어떤 변화가 왔는지 나중에 기억할 것입니다. 나중에 마스터로 다시 병합하려고하지 않겠습니까? –
죄송합니다. 위의 "공용 * 지점에 rebase를 호출하는 것은 필사적 인 죄로 간주됩니다"라는 의미입니다. –