git 스크롤 오류 병합된 지점
장면
온라인 분기:마스터
당신이 개발한 지점: dev1
동시 개발 지점: dev2
dev1 지점에서 개발한 코드가 이미 출시되었고merge가master에 도착했습니다
이 동시에 dev2 지점도 이미 출시되었고merge가 마스터에 도착했습니다
이 때 dev1의 커다란 버그를 발견했습니다. 온라인 버전에서는 이 지점의 코드를 모두 제거해야 합니다.
원하는 효과
모든 dev1의 합병을 취소하고 dev2 코드를 보존해야 합니다.
또한 로컬 dev1의 지점은 이 코드를 삭제하고 싶지 않으며, 이를 바탕으로 개발합니다.
master 분기
만약 리셋을 사용한다면, 온라인의 몇 개의 제출 기록은 보류되지 않고, 우리가 원하는 효과에 도달하지 못할 것이다.
여기는git revert를 사용합니다.
우선 모든 dev1의 변경 사항을 취소하고 dev1의 두 번의commit id를 찾아야 합니다
git revert 63db9b1228c9e38a015513f834a42fa55002fca8
git revert a407174c5df3e47e1866663e4c3fe611419eb5a8
이때 마스터는 우리가 원하는 효과에 도달했다.
개발 지점
이 때 dev1 지점으로 돌아가서 버그를 복구하고 이전에 제출한 코드를 보존해야 합니다.
그러나 로그인하기 전에 항상 메르지 마스터를 먼저 해야 한다. 그러나 마스터의 두 번revert는 너를 앞서고 메르지 후에 너의 코드가 없어진다.
다음은 현재 dev1의 제출 상황입니다
그래서 우리는mergemaster를 사용한 후에revert를 사용하여 이번merge를 취소해야 한다.
그러나 이때merge가master를 끝낸 후에 이 지점에 새 코드를 제출한 것을 발견하면revert는 오류를 보고합니다.
git revert ce479b597de6025da4a67ddd4a94d1b8034d8c67
error: commit ce479b597de6025da4a67ddd4a94d1b8034d8c67 is a merge but no -m option was given.
fatal: revert failed
이것은 취소된 합병이기 때문에git는 이 두 지점 중 어느 변경 사항을 저장해야 할지 모른다.
-m 1은 현재 분기의 변경 사항을 유지함을 나타냅니다.
-m 2는 Master 변경 사항을 유지함을 나타냅니다.
우리의 목적은 dev1의 코드를 보존하기 위해서이기 때문에 현재 코드를 보존해야 한다. 즉, -m1을 사용해야 한다.
git revert -m 1
ce479b597de6025da4a67ddd4a94d1b8034d8c67
[dev1 bb363fa] Revert "Merge branch 'master' into dev1"
2 files changed, 0 insertions(+), 0 deletions(-)
rename dev2 add => b (100%)
create mode 100644 c
위의 코드를 실행하면, 우리는 코드가 다시 돌아왔고, 마스터가 굴러가기 전의 코드와 같다는 것을 발견할 수 있다.
버그를 고치고 현재 코드를 마스터에 합치면 dev2가 제출한 코드가 당신의merge에 의해 제거되었음을 발견할 수 있습니다???
이것은 당신의 리버 합병이 당신의 지점 코드를 사용했기 때문입니다. 그러나 당신의 dev1 지점에는 dev2 코드가 없습니다.
그래서 우리는 마스터가 굴러가기 전에 dev1 지점으로 돌아가서 최신 코드를 한 번 먼저merge한 다음에 다음 다음 동작을 실행해야 한다.
총결산
총괄해 보면 절차가 매우 간단하다.
1. 당신이 개발하고자 하는 지점을 유지하고 마스터의 최신 코드를 동기화합니다.
2. revert 모든 이 지점의 제출.
3. 분기mergemaster로 돌아갑니다.
4.revert merge master 제출
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
git 스크롤 오류 병합된 지점당신이 개발한 지점: dev1 dev1 지점에서 개발한 코드가 이미 출시되었고merge가master에 도착했습니다 이 동시에 dev2 지점도 이미 출시되었고merge가 마스터에 도착했습니다 이 때 dev1의 커다란 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.