2017-04-26 6 views
0

작은 지형지 물에 대해 명명 된 분기를 만들었으니 기본 지형으로 병합하고 지형지 물을 분기하지 않으려합니다.Git의 squash 병합에 대한 Mercurial equivalent

자식에서 나는 git merge --squash my-feature을 할 수있었습니다. Mercurial에서 상응하는 것은 무엇입니까? 아니면 대안이 있습니까?

답변

2

Git "스쿼시 병합"은 전혀 병합되지 않습니다. 병합 기계류을 사용하여 다른 커밋의 효과를 복사하고 병합베이스 검색 시스템을 적용하여 적용 할 diff를 결정한 다음 해당 변경 사항을 새로운 독립 커밋으로 직접 적용합니다.

[email protected] <-- you-are-here 
     \ 
      Q--R--S <-- stuff-you-want-to-squash 

이제는 효과적으로 git diff B S | git apply -3을 수행합니다.

의욕은 확실히 그 없지만, 새 등이 복사 커밋 Q-R-S의 효과를 추가는 @ 후 커밋하기 때문에, 당신은 hg rebase를 사용할 수 있습니다. 원래 Q-R-S (또는 많은 커밋이 있음)을 유지하려면 --keep 옵션을 참조하고 스쿼시 효과를 얻으려면 --collapse 옵션을 참조하십시오.

+0

전체 명령 'HG 리베이스 --keep --collapse -s commit_hash-of_first_commit_in_my_feature_branch -d default' 추가 읽기 : https://spin.atomicobject.com/2013/11/27/move-unpushed-changes / – Krishnaraj