2013-06-19 5 views
1

리포지토리에서 기능 분기를 기반으로 기능을 개발합니다. 최근에 나는 master로 기능 feature/myfeature 통합 :Git : 이전 병합 후 기능 분기를 병합 할 때 충돌을 피하는 방법

git merge --no-ff feature/myfeature 

그것을이 기능에 결함이라고 밝혀졌다 나는이 병합을 복귀하기로 결정 그래서 통합을 차단 될 때까지 좀 더 발전이 있었이 병합 후. 한편 master에 더욱 개발뿐만 아니라 저자가 픽스 업이 커밋이 추가되었습니다로 일어난

git revert -m 1 commit_hash 

: https://stackoverflow.com/a/6217372/1237653에 따라 나는 역사를 파괴하지 않고 병합을 되돌릴 수있는 유일한 옵션을 choosed 할. 이제 필자는이 기능을 통합/병합하기 위해 두 번째 실행을 원합니다. 불행히도 이제 12 번째 충돌이 발생합니다. 첫 번째는 &을 적용하면 되돌리기가 두 번째 시도와 똑같은 코드 행을 적용하기 때문입니다.

git merge --no-ff feature/myfeature 
<pointless conflicts all over> 

어떻게 그 의미가 충돌없이 내 이전에 복귀 기능이 지점을 다시 적용 할 수 있습니까?

나는 행운없이 -s recursive -Xrenormalize을 시도했습니다. Rebase도 같은 충돌을 일으킬 것입니다.

+0

"임시 해결 방법"으로 필자는 모든 커밋을 이전에 덮어 쓰는 새 분기로 수동으로 체리 선택하여 기능 분기의 기록을 파괴했습니다. 기분 나쁜 & 못생긴. –

답변

0

되돌릴 분기를 다시 병합하는 대신 되돌리기 커밋을 되돌려 야합니다. 나는 말 그대로 sha1git revert 당신의 이전에 의해 커밋됩니다

git revert <sha1> 

.

+0

감사! 나는이 솔루션이 약간의 유용성 결함을 가지고 있다고 생각한다. 왜냐하면 그 이후에 재사용/재사용해야하기 때문에, 두 번째로 나머지 기능을 다시 잡아야한다. 그리고 그것이 다시 실패한다면, 모든 것은 사중계가됩니다 ... –