내 레포에서 추악한 기록이 있으며 간소화하고 싶습니다. 내가 읽은 것부터 git rebase가 사용해야 할 도구가 될 것입니다. 내가하고 싶은 것입니다 :지우기 기록 : Git에서 A에서 B로 스쿼시하고 D에서 E로 커밋
를 켭이이 속으로
A--------------------------I (master)
\ /
B--C-------------G--H--/ (development)
\ /
D--E------/ (feature-1)
\ /
F--/ (feature-2)
:
A-BCDEFH--I (master)
(가), 나 같은 형태로 다른 커밋이 "I"를 커밋 그래서 나는 것 후 나의 마지막 병력은 다음과 같습니다 :
A-BCDEFH--I--KLMNO-P (master)
어떻게해야합니까?
편집 :이 예제에서 D와 F는 병합 커밋이 아니며 표준 커밋이므로 병합은 커밋되지만 G와 I는 모두 기록에서 제외해야합니다. A
는 A에 대한 커밋 식별자입니다
$ git checkout -b new-master master
$ git rebase --onto A A new-master
이 그래프에 커밋 :
당신은 의도적으로 최종 역사에서 G를 떠나? –
'G'는 병합 커밋이므로 히스토리가 선형화 될 때 실제 히스토리가 없습니다. (그 문제에 대해서도 역시'I'입니다 ... 그것은 리베이스에서도 사라질 것입니다.) – cdhowie
이 예제에서는 병합 커밋을 생략합니다. 따라서 D와 F는 "실제"커밋입니다. 편집 된 혼란에 대해 사과드립니다. – AeroCross