2014-05-23 2 views
0

내가 병합 할 공동 작업자의 git 분기가 있습니다. 문제는 초기 커밋 중 하나에 실수가 있다는 것입니다 (예 : 커밋 메시지를 변경해야하거나 일부 EOL 문자를 수정해야하는 경우).분기를 병합했지만 하나의 수정 된 커밋이 있음

로컬 브랜치에서 커밋을 선택한 다음 대화식 리베이스 + 편집을 수행하면이 문제를 해결하는 데 2 ​​분이 걸릴 수 있습니다.

문제는 내가 그렇게하면 공동 작업자의 원래 분기가 더 이상 다양한 도구 인 GitHub에 의해 병합 된 것으로 보이지 않는다는 것입니다.

브랜치를 픽스와 병합하고 원래 브랜치가 병합 된 것으로 볼 수있는 워크 플로우가 있습니까?

답변

1

공동 작업자의 원래 분기를 유지하려면 cherry-pick + rebase를 수행 한 다음 git merge -s ours badbranch에 "올바르지 않은 잘못된 공백"메시지가 표시되면 master 브랜치에 있지 않은 경우 정상적으로 병합하십시오.

0

cherry-pick은 어디에 입력합니까? 원래 분기에서 대화 형 rebase를 수행하고 커밋 메시지를 편집 한 다음 정상적으로 분기를 병합합니다.

1

여기에 accepted solution에서 수정 된 작은 수정이 필요한 분기를 병합하는 작업 흐름입니다.

병합 할 분기가 collaborator/fix-bug-10입니다.

먼저 로컬 브랜치를 설정하고 체리 - 공동 작업자 브랜치의 모든 커밋을 선택합니다.

git checkout master 
git branch collaborator-fix-bug-10 # hyphen instead of slash 
git checkout collaborator-fix-bug-10 
git cherry-pick COMMIT1 
git cherry-pick COMMIT2 
git cherry-pick COMMIT2 

그런 다음 문제를 해결합니다.

git rebase -i master # show commits between HEAD and master 
# fix problems 
git rebase --continue 

그런 다음 공동 작업자의 지점을 지점과 "병합"합니다. 이것은 수용된 해결책의 요지입니다.

git merge --strategy ours collaborator/fix-bug-10 

마지막으로 로컬 분기를 마스터 분기에 병합합니다.

git checkout master 
git merge --ff-only collaborator-fix-bug-10 
git branch --delete collaborator-fix-bug-10 
관련 문제