2012-12-03 5 views
1

나는 물론 마스터 브랜치가있는 프로젝트를 작업 중이다. P와 시간이 지남에 따라 생성되는 여러 개의 릴리스 브랜치. 내가 사용하고있는 버전 컨트롤은 힘내 (Git)이며 가능한 한 자동적으로 다른 릴리즈 브랜치에서 만든 버그 수정을 적용하는 방법을 찾고있었습니다. 즉 ...다중 릴리스 분기에 커밋을 적용하십시오 - Git Rebase 또는 Cherry-Pick?

--------------------------Master 
|  |  |__v3 
|  |__v2 
|___v1 
    |____bugfix 

내가 V1에서 발견 된 버그를 수정하고, v2 및 v3에서 동일한 수정 (만 수정)를 적용해야하는 경우, 내가 망할 놈이를 편리하게 할 수있는 방법은 무엇입니까?

나는 Git을 처음 사용하지만 Chery가 커밋을 선택하여 적용 할 수 있다고 생각했지만 분기가 계층 구조와 직접 관련되어 있어야하는지 궁금해하고 있었습니까? v1에서 v2 및 v3으로 'bugfix'에서 cherry-pick 또는 rebase 할 수 있습니까? (또는 v3에서 v2 등) Afaik, rebase가 모든 커밋을 재생하므로 체리 피클이 무엇을 찾고 있는지 알 수는 있지만이를 달성하는 방법은 확실하지 않습니다. 게시물 나는 자식에서 부모 지점까지 cherry-pick을 보았습니다. 무엇을하려고하는 것이 가능한가?

건배.

답변

6

버그 수정이 단일 커밋이거나 커밋 범위 인 경우 체리 피크를 사용할 수 있습니다.

귀하의 버그 수정 한 커밋 것와 샤는 SHA1은 여러 커밋의 경우, 먼저 버그 수정, SHA1의 커밋하기 전에이 샤 커밋 발견하고 마지막은 버그 수정의 SHA2의 샤 커밋

git checkout v2 
git cherry-pick SHA1 

입니다

git checkout v2 
git cherry-pick SHA1..SHA2 
+0

고마워요! SHA1은 로그에서 가져올 수 있습니다. 맞습니까? 그런 다음 수정 프로그램을 적용 할 지점을 체크 아웃하고 'cherry-pick'을 실행하면됩니까? 이것은 대개 간단한 과정입니까? 제한 사항을 알고 있습니까? 매우 감사!! – marked

+0

또한 일반적으로 버전간에 유사성이있는 경우 수정 사항을 백 포트 (이전 버전 이후) 할 수 있습니까? – marked

관련 문제