development

Git-filter-branch를 사용하여 빈 변경 집합이있는 커밋 제거

big-blog 2020. 10. 19. 08:19
반응형

Git-filter-branch를 사용하여 빈 변경 집합이있는 커밋 제거


git filter-branch를 사용하여 변경 집합이없는 커밋을 제거하려면 어떻게해야합니까?

다음을 사용하여 내 자식 기록을 다시 작성했습니다.

git filter-branch --tree-filter 'rm -r -f my_folder' -f HEAD

이것은 잘 작동했지만 이제 빈 변경 세트가있는 많은 커밋이 있습니다. 그 커밋을 제거하고 싶습니다. 바람직하게는 msysgit에서.

리베이스는 4000 개가 넘는 커밋이 있고 그 중 절반을 제거해야하기 때문에 실제로 옵션이 아닙니다.


--prune-empty옵션을 추가하십시오 .

git filter-branch --tree-filter 'rm -rf my_folder' --prune-empty -f HEAD

(물론 다른 ref가있는 경우 . -- --all대신 모든 것을 다시 작성하는 것이 좋습니다 HEAD.)

이것은와 호환되지 않습니다 --commit-filter. 이 경우 Charles Bailey가 답변을드립니다 .


에 대한 문서를 살펴보면 다음과 filter-branch같이 할 수 있습니다.

git filter-branch --commit-filter 'git_commit_non_empty_tree "$@"' HEAD

참고 URL : https://stackoverflow.com/questions/5324799/git-remove-commits-with-empty-changeset-using-filter-branch

반응형