2013-03-11 4 views
3

분기 (master) ('master')에 여러 번 병합 한 지형지 ​​물을 빌드했습니다 ('feature1'이라고 함). Ive는 일시적으로 다른 기능 브랜치를 마스터에 병합 했으므로 'feature1'에서 'master'로 가져온 내 병합 커밋은 지난 주 동안 다른 커밋 전체에 뿌려졌습니다.특정 분기에서 병합 된 모든 커밋을 제거합니다.

내가하고 싶은 일 : 'feature1'-> 'master'의 모든 병합을 마치 발생하지 않은 것처럼 제거합니다. 다른 지부에서 온 다른 모든 일은, 나는 '주인님'을 그대로 간직하고 싶습니다.

특정 소스에서만 보낸 커밋을 제거하는 방법이 있습니까? ie 'feature1'브랜치일까요?

답변

3

음, 이것은 당신이 한 번만해야 할 일이며, 병합의 수를 관리 할 경우, 다음과 같이 그것을 할 수 :

git rebase -i <sha1 of master before I started merging evil branch in> 

을 수동으로 병합 당신이 돈 범 밖으로 편집 ' 싶어.

filter-branch 등으로 자동화하는 방법이 있습니다.하지만 일회성이라면 rebase를 사용하면 더 빨리 작업을 완료 할 수 있습니다.

+0

감사합니다. gc! 그것은 실제로 완벽하게 작동했습니다. –

+0

뻔뻔한 잔인성을위한 Upvote – jthill

관련 문제