2011-01-19 3 views
9

git에서 병합을 "실행 취소"하는 것이 쉽지 않은 방법에 대한 이야기가 많이 있습니다. 짧은 버전 : 병합 커밋을 실행 취소하면 git은 그 변경 사항을 나중에 병합하지 않습니다.git 병합은 쉽게 롤백 할 수있는 방법으로 수행 할 수 있습니까?

이 문제를 줄이기 위해 병합 작업을 수행 할 수 있습니까? 머지를 취소하는 것이 소프트웨어 개발자의 일반적인 과정에서, 정말로 중요한데, 더 중요한 것은, 변경 사항을 롤백해야하는 릴리스 브랜치의 상태를 제어하는 ​​것입니다.

편집

나는 this article에서 솔루션을 보았다 정말 그것을 문제에 대한 설명의 더 많은 솔루션을 고려하지 않습니다. 그것은 당신이 다시 (몇 시간, 일, 주 또는 개월 수 그들에 따라 코드에서 가지고 할 때

  1. 항상
  2. 의 모든 취소-병합을 기억 --no-FF를 사용 필요 이 서브 버전에서 작동하는 방법 내가

    를 원하는 미래를 ...)

에 여기에있다. 스테이징 서버에서 실행하는 기능과 기능을 시험해 보는 지점 인 "릴리스 후보"라는 지점이 있다고 가정 해 보겠습니다. 기능 A 분기를 병합한다고 가정 해 보겠습니다. Subversion에서는 하나의 변경 집합이며 모든 파일의 모든 기록이 병합됩니다. 우리가 좋아하지 않는다고 가정 해 봅시다. 우리는 단지 하나의 변경 집합을 취소하고 다른 것에 대해서 생각할 필요가 없습니다. 우리는 한 지점에서 우리가 병합하고 그것을 꺼냈다는 것을 기억할 필요없이 장래에 언제든지 지형지 물 A를 병합 할 수 있습니다.

가능한 한 그 흐름에 가까워지고 싶습니다. 나는 미래에 물건을 기억하지 않아도되도록 최적화하고 싶습니다. 어떻게 든 길을 따라 걸음을 더 많이 내딛더라도. (이 ... 불가능할 수도 있습니다)

+0

git reset --hard ORIG_HEAD를 사용하여 커밋을 롤백 할 수없는 이유가 있습니까? – urschrei

+0

내 답변에 더 많은 정보가 필요합니까? –

+0

urschrei : 서버의 한 지점에서 그렇게했다면, 결과를 push하기 위해'--force'를 사용해야 할 것입니다, 그렇습니까? –

답변

관련 문제