병합을 취소하는 방법에 대한 정보가 많이 있습니다. 그러나 특정 상황에서이를 수행하는 방법에 대한 결과를 찾을 수 없습니다.bitbucket pull 요청에 의해 생성 된 자식 병합을 실행 취소합니다.
누가 본질적으로 우리의 master
브랜치에 우리의 develop
브랜치를 bitbucket의 풀 요청을 통해 병합했습니다. 이것은 지금 막 일어 났으므로 마스터 브랜치에서 마지막으로 수행 된 작업입니다 (병합 커밋의 맨 위에있는 다른 커밋에 대해 걱정할 필요가 없습니다).
참고 : 우리는 우리 자신을의 Bitbucket 호스트, 그래서 우리의 bitbucket의 이전 버전을 가지고있다. 되 돌리는 요청 요청은 없습니다.
git reset --hard *<SHA of commit before the merge>*
- 이 병합이 일어나지 않을 것처럼 커밋 제거 : 내가 읽은 바로는
은 기본적으로 자식이 처리의 두 가지 방법이있다.
develop
에서 master
git revert -m 1 *<SHA of the merge commit>*
- 이 새로운 그 커밋이 만들어집니다 병합에 의해 수행 된 변경 우리가 나중에에
master
로develop
을 병합 할 계획입니까 제외 이
- 이 괜찮을 것을 취소합니다 날짜 (다음 릴리스)를 읽었을 때부터 내가 읽은 바에 따르면
develop
을master
에 병합 할 때 오늘 되돌릴 변경 내용이 포함되지 않기 때문에 되돌리기 커밋을 되돌릴 것을 기억해야합니다. 아무도이 되돌리기를 기억하지 못하면서 지금부터 6 개월 후에 이것이 문제가되고 싶지 않습니다.
TL; DR : 나는 우리가 다시 병합을하고 싶지 않을 때 지금부터 6 개월이 발생할 수 있기 때문에 문제의 git revert
일에 주저입니다. 또한 모두가 경고를하는 것처럼 보이기 때문에 git reset
을 주저합니다. 그리고 bitbucket에서 끌어 오기 요청과 관련된 문제를 일으킬 수 있습니다.
2 번에 대해 자세히 설명해 주시겠습니까? 나는 따라하지 않는다. 특히 "앞으로"사용하는 경우. 6 개월 만에 '개발'에서 '마스터'로 병합 할 때 되돌리기를 고려할 수 있도록 '개발'을 변경할 수있는 방법이 있다는 말입니까? –
그래프가있는 예제 추가 – max630
자세한 답변을 주셔서 감사합니다. 나는 이것을 받아 들인 대답으로 분명히 표시 할 것이지만, 한가지 더. 우리는 마스터에서 되돌리기를 한 이래 개발에 대한 다른 커밋이 있었기 때문에 마스터에서 개발로의 빠른 결합을 할 수 없다. 그게 아무것도 바뀌 었습니까? 빨리 감기 병합 대신 병합 커밋을 수행하여이 작업을 계속 수행 할 수 있습니까? –