2010-01-14 2 views
5

저자가 더러운 경로를 취하고 초기 커밋의 lib/디렉토리에 모든 의존성을 채운 저장소에서 작업하고 있습니다. 일반적으로 초기 커밋이 아니라면 대화 형 리베이스를 수행하고 전체 커밋을 삭제할 것입니다 (그게 전부라면). 그러나 초기 커밋을 편집/삭제하는 방법을 알지 못합니다. 초기 커밋을 편집하고 나머지를 만지지 않고 lib 디렉토리를 제거 할 수있는 방법이 있습니까? 선택한 답변에 Can I remove the initial commit from a Git repo? :github 저장소에서 초기 커밋을 편집하려면 어떻게해야합니까?

편집

실수로 여기에 답을 우연히 발견. 그게 내가 더 철저하게 검색하지 못하게하는 이유입니다. SECOND

답변

4
$ git filter-branch --parent-filter \ 
    'test $GIT_COMMIT = SECOND && echo "" || cat' \ 
    --tag-name-filter cat -- --all 

는 SHA-1 새 루트하려는 커밋의입니다.

위의 내용은 모든 분기가 동일한 첫 번째 및 두 번째 커밋을 사용한다고 가정합니다. 그렇지 않은 경우 상위 필터에서 테스트를 일반화해야합니다.

이것은 매우 과감한 조치입니다. 전체 기록을 다시 작성하고 작성자의 repo를 따르지 않도록주의하십시오. 또한 리모컨으로 리포를 푸시 한 경우 git push -f으로 문제를 해결해야합니다.

+0

경고 : 심판 '심판/헤드/마스터' 경고 변경되지 않습니다 : 심판 '심판이/리모컨이/원산지/마스터'변경되지 경고 : 심판 '심판/리모트/원점/마스터'변경되지 가 준 것입니다 나를. – Rayne

+0

Ack! 첫 번째가 아닌 * 두 번째 커밋의 부모를 다시 작성하려고합니다. 업데이트 된 답변보기 및 잘못된 시작 죄송합니다. –

+0

이 게시물을 편집하기 전에 다른 방법으로 (편집에서 보여지는대로) 알아 냈습니다. 나는 이것이 실제로 작동한다는 가정하에 진행할 것입니다. (저는 당신을 완전히 신뢰합니다.) 어쨌든 당신의 대답을 받아 들일 수 있습니다. – Rayne

관련 문제