2014-10-17 5 views
1

timestamp를 기반으로 중복 커밋으로 리포지토리를 리베이스하는 방법은 무엇입니까?타임 스탬프에 기반한 git rebase master

배경 : 하나의 git 리모컨에서 다른 git 리모컨으로 전송하고 새로운 git 원격 단말에서 사용자 이름을 조정하기 때문에 더러운 저장소가 있습니다. 결과적으로 "다른"사용자와의 이중 커밋이 발생합니다. 실제로는 동일합니다. 단일 일관성은 타임 스탬프이므로 복제본을 자동으로 제거 할 수있는 방법이 있습니까?

+1

커밋에 동일한 변경 사항이 포함되어 있으면'rebase'는 자동으로 커밋을 삭제해야합니다. –

+0

편집이 의미가 없습니다. 리베이스를 시도 했습니까? 이러한 커밋은 선형입니까? 아니면 두 개의 별도 경로를 가리키는 병합 커밋이 있습니까? –

+0

나는 rebase를 시도했다. 필자는 먼저 "선택"을 선택하고 "스쿼시"와 동일한 메시지를 사용하여 다음 커밋을 수행하지만 HEAD에 새로운 병합이 생깁니다. 내가하려는 것은 역사에서 커밋을 제거하는 것입니다. 많은 경우가 있지만 가능한 경우 수동으로이 작업을 수행 할 수 있습니다. 타임 스탬프를 사용하여 수행 할 수 있으면 좋을 것입니다. 이러한 커밋은 별도의 경로에 있습니다. 사용자 중 한 명이 사용자 이름을 변경했는데 나의 잘못은 새 항목에서 오래된 항목으로이 변경 사항을 가져오고 커밋하는 것이 었습니다. 이제는 이중화 된 커밋이 존재하기 때문에 여러 경로가 있습니다. 고마워요 –

답변

0

noted으로 Andrew C에 의해, 그리고 언급 git rebase man page에 :

이전에 임시 영역에 저장된 커밋은 다음 순서로, 현재 지점에 하나씩 다시 적용됩니다.
HEAD..<upstream>에서 커밋과 동일한 텍스트 변경을 도입하는 모든 커밋은으로 생략되었습니다 (즉, 다른 커밋 메시지 또는 타임 스탬프로 이미 업스트림에 수용된 패치는 건너 뜁니다).

따라서 rebase -i master은 커밋 목록을 그대로 받아들이므로 중복되지 않고 한 세트의 커밋 만 사용해야합니다.