[Git 미러링] These are your protected commits 에러 해결

토시·2022년 5월 31일
1

[Project] 개인공부

목록 보기
13/15

gitlab을 사용하다가 github으로 미러링해야 할 일이 생겼다
기존 파일에 100MB가 넘는 파일이 포함되어 있어 다양한 방법을 시도했지만
계속 에러로 인해 미러링이 되지 않았고, 여러 시행착오 끝에 해결했다.

이 방법이 누군가에게 도움이 되길 바라며 작성한다.

발단

여느 때처럼 gitlab에서 github으로 미러링을 진행하고 있었다.

$ git clone --bare [gitlab repo]

$ cd [gitlab 프로젝트 폴더]

$ git push --mirror [github repo]

당연히 100MB가 넘는 mp4 파일이 포함된 프로젝트이기 때문에 위와 같은 에러가 떴다.

늘 하던데로 jarfile을 사용해서 해결을 시도했다.

다시 상위폴더로 이동

$ cd ../

해당 폴더 위치에 BFG Repo-Cleaner 설치
$ ls

[gitlab 프로젝트 폴더].git/ bfg-1.14.0.jar

[gitlab 프로젝트 폴더].git에서 100MB 넘는 것 제거
$ java -jar bfg-1.14.0.jar --strip-blobs-bigger-than 100M [gitlab 프로젝트 폴더].git

그런데 여기서 다음과 같은 Protected commits 에러가 발생했다.

해결

이 protected commits을 포함시켜서 제거해주어야 하기 때문에 jarfile 실행 명령어에 조건을 추가해줬다. > --no-blob-protection

$ java -jar bfg-1.14.0.jar --strip-blobs-bigger-than 100M --no-blob-protection S06P31A308.git

100MB 넘는 파일이 제대로 삭제가 되었다.

마지막으로 다시 push를 해주면 제대로 브랜치, 커밋이 미러링 된다.

$ git push --mirror [github repo]

잔디까지 제대로 옮겨졌는지 확인하면 끝!

Reference

https://hongjuzzang.github.io/howto/git_mirror/
https://rtyley.github.io/bfg-repo-cleaner/

profile
개발하는 토시

0개의 댓글