[Git] 모든 커밋 내역에서 특정 파일 제거

RUNGOAT·2023년 7월 9일
0

Git

목록 보기
3/3
post-thumbnail

1. BFG Repo Cleaner를 설치


2. 복사하고자 하는 저장소(gitlab)의 bare clone을 생성

 git clone --mirror <repository_url>

3. 모든 커밋 내역에서 특정 파일 제거

java -jar <bfg-1.14.0.jar 파일 경로> --delete-files <file_name> --no-blob-protection <repository_name>.git

BFG는 커밋과 모든 브랜치 및 태그를 업데이트하여 정리하지만 원하지 않는 항목을 물리적으로 삭제하지는 않습니다.

  • file_name 에 띄어쓰기가 있다면 "<file_name>"를 사용하면 됩니다.
  • --no-blob-protection 옵션을 사용하면 브랜치의 최신 커밋들에서 발견되는 파일도 처리합니다.
  • 기본적으로 BFG Repo-Cleaner는 브랜치의 최신 커밋에서 찾은 파일들을 보호합니다.
  • <bfg-1.14.0.jar 파일 경로>는 \가 아닌 /을 사용해야 합니다.
    예시) C:/Users/Downloads/bfg-1.14.0.jar

4. Repository 정리

$ cd <repository_name>.git
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive

repository를 검사하여 기록이 업데이트되었는지 확인한 다음 표준 git gc명령을 사용하여 원하지 않는 dirty 데이터를 제거합니다.


5. Git push

git push --force
profile
📞피드백 너무나 환영

0개의 댓글