저장소 G는 Gerrit를 통해 관리되는 github 저장소를 고려하십시오. 저장소 A를 복제했고 저장소 A의 마스터 분기에서 시작하여 새 분기를 만들었습니다.이 새 분기를 새 gitlab 저장소 B에 밀어 넣었습니다. 저장소 B의 관리자이고 다른 개발자와 공유했습니다. 개발자는이 지점을 사용할 수 없지만 요청을 병합 할 수는 있습니다. 리포지토리 B의 마스터 분기에서 일부 끌어 오기 요청을 병합했습니다. 따라서 리포지토리 B에는 리포지토리 A의 초기 커밋과 끌어 오기 요청의 새 커밋이 있습니다. B는 커밋 (b a) 위에 커밋합니다.git을 사용하여 공유 분기 저장소 업데이트
그런 다음 리포지토리 B를 새로운 리포지토리 A 커밋으로 업데이트하려고합니다. 이러한 커밋을 +라고 부릅니다.
나는 두 가지 참조 : I는 B에 병합 경우
- 를, 그 결과는 다음과 B A +는.
- A +에서 B를 리베이스하면 그 결과는 다음과 같습니다. b a + a.
옵션 1 : 개발 커밋은 외부 커밋과 섞여 있습니다. 디버깅하기가 어렵고 차이점을 강조하기가 어렵습니다.
옵션 2 : 리모컨 B에서 변경 사항을 강제 적용해야합니다. 실수하지 않으면 결과는 다음과 같을 수 있습니다. 1. 개발자가 B를 가져오고 B의 로컬 마스터에서 커밋 한 경우 그들의 현지 변화를 잃을 것이다; 2. 브랜치 B를 강제 업데이트 한 후에 개발자가 로컬 브랜치를 리베이스 할 때 큰 문제가 발생할 수 있습니다.
문제를 피하려면 어떻게해야합니까?