원격/공용 분기에 "OLD"를 정리해야하는데, 그 중 일부에는 불량/거대한 커밋이 포함되어 있기 때문입니다.GIT 공개 분기 새 분기로 정리
OLD - 간단한 그래프
(...) -> c234 -> c235(huge to fix) -> c236 -> c237(huge to fix) -> c238 -> c239 -> (...) -> HEAD
내가 한 이렇게하려면 다음
1) 나는 "NEW"지점을 만들었습니다.
2) 전에 돌아가 첫번째 거대한 커밋 (C234)
3) 체리 거대한 마지막 커밋하기 전에 모든 커밋을 선택합니다. (c236)
4) 그럼 난 후 "OLD"지점에서 변경된 모든 파일을 복사 마지막으로 거대한
5) 마지막으로 변경 (C235, c237)
을 반영하는 많은 작은 커밋을 생성 (c237) 커밋 NEW 지금 - 간단한 그래프 이제 내 생각에 나는 "NEW"
,691의 상단에 "OLD"에 (c237) 이후의 모든 변경 사항을 체리 - 선택/리베이스해야(...) -> c234 -> c236 -> (many commits reflecting state after c237) -> HEAD
363,210
NEW 예상 - 병합이 -i를 자식이 - 리베이스 전에 시도
(...) -> c234 -> c236 -> (many commits reflecting state after c237) -> c238 -> c239 -> (...) -> HEAD
간단한 그래프 그러나 이것은 공공의 repo 때문에, 그것은 (OLD의 HEAD 거의 400 커밋이) 많이 포함하고 때로는 갈등을 해결해야만했습니다. 마녀는 수일이 걸릴 수 있습니다.
아이디어가 있으면 어떻게 처리할까요.
** 정확한 ** rebase 명령은 무엇입니까? –
첫 번째 시도는 이었습니다. git-rebase -i -onto refs/heads/old c235 아이디어는 커밋 순서를 변경하고 조인하고 여러 개의 작은 항목으로 분할하는 것이 었습니다. 하지만 사용자가 병합 충돌을 일으킨 경우 언제든지 다시 해결해야하며 20 번 수동 병합 후에 포기합니다. – Fazer