Git 히스토리에서 민감 파일 완전 삭제 & 조직 레포까지 일괄 동기화
- 실수로 _dev/memo.txt를 push함.
- 단순 revert로는 과거 커밋까지 history에서 삭제 불가.
- filter-repo로 특정 파일만 히스토리에서 제거
- 미러 클론 후 작업, push –force
절차 ** **1. 미러 클론
1
2
3
4
bash
cd ..
git clone --mirror https://github.com/myID/myRepo.git myRepo_mirror.git
cd myRepo_mirror.git
2. filter-repo 실행
1
2
bash
python -m git_filter_repo --path "_dev/memo.txt" --invert-paths
3. 원격 재설정
1
2
bash
git remote set-url origin https://github.com/myID/myRepo.git
4. 강제 push
1
2
3
bash
git push --force --all
git push --force --tags
5. 기존 로컬 repo 정리 & 새 clone
1
2
3
4
5
6
bash
cd ..
mv myRepo myRepo_old
# 또는
rm -rf myRepo
git clone https://github.com/myID/myRepo.git cd myRepo
- 내 repo에는 문제파일의 history를 제거했다. 하지만 내 repo를 fork하는 조직 repo가 있는데, 거기에는 여전히 문제의 히스토리가 남아있다.
- 주의사항discard/sync fork 버튼은 충돌 및 이력 꼬임 유발, 사용 금지
- 모든 협업자는 새로 clone 필요
- 이렇게 할 시, 이미 커밋된 민감 파일 흔적 완전 삭제 가능
- 해결 절차:
1
2
bash
git remote add org-origin https://github.com/orgID/orgRepo.git
2. 강제 push (조직 repo)
1
2
3
bash
git push --force --all org-origin
git push --force --tags org-origin
3. remote 연결 해제
1
2
bash
git remote remove org-origin
이 방식으로 내 repo 및 조직 repo에서 특정 파일의 히스토리를 완전히 정리할 수 있음. ** **#해시태그 #git #gittips #gitfilterrepo #gitmirror #gitcleanup #gitforcepush #repository #history #historyrewrite #gitremovefile #git실수 #민감정보 #민감파일 #비밀정보 #privatefile #secretfile #historyremoval #opensource #github #githubtips #githubfork #fork관리 #fork동기화 #orgrepo #organization #repo관리 #버전관리 #devops #개발팁 #실전팁 #클린코드 #코드정리 #historycleaning #gitignore #gitbestpractice #security #보안 #gitadvanced #collaboration #협업 #팀개발 #깃정리 #filterrepo #forcepush #커밋삭제 #커밋정리 #pullrequest #fork #discardfork #gitforkdetach #gitpush #gitpull #repositorysync #코드관리 #소스관리 #gitblog #코딩블로그 #개발블로그
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.