Git
GitLab에서 GitHub로 미러링 시 민감 정보 안전하게 제거하기
422haha
2024. 11. 20. 15:47
안녕하세요! 이번 포스팅에서는 GitLab에서 GitHub로 리포지토리를 미러링하면서 발생할 수 있는 민감 정보 제거 방법을 안내드립니다. 프로젝트를 이전하거나 협업 환경을 변경할 때, Git 히스토리에서 민감한 정보가 유출되지 않도록 처리하는 방법을 단계별로 살펴보겠습니다.
목차
- GitHub에 Private 리포지토리 생성
- GitLab 리포지토리 미러링
- 미러링된 리포지토리 클론
.gitignore
업데이트 및 민감 파일 제거- BFG Repo-Cleaner로 민감 파일 기록 제거
- Git 저장소 정리
- 변경사항 강제 푸시
- Git 최종 정리
- 참고 자료 및 결론
1. GitHub에 Private 리포지토리 생성
- GitHub에 접속하여 로그인합니다.
- 오른쪽 상단 + 아이콘 클릭 → New Repository 선택.
- 리포지토리 설정:
- Repository name: 원하는 이름 입력. 예:
YOGANAVI-temp
. - Privacy: Private 선택.
- Initialize this repository with a README: 초기화 없이 생성.
- Repository name: 원하는 이름 입력. 예:
- Create repository 클릭.
2. GitLab 리포지토리 미러링
GitLab 리포지토리를 GitHub로 미러링합니다.
git clone --mirror https://lab.ssafy.com/s11-webmobile4-sub2/S11P12D210.git
cd S11P12D210.git/
git push --mirror https://github.com/422haha/YOGANAVI-temp.git
3. 미러링된 리포지토리 클론
GitHub로 미러링된 리포지토리를 로컬에 클론합니다.
git clone https://github.com/422haha/YOGANAVI-temp.git
4. .gitignore
업데이트 및 민감 파일 제거
.gitignore
를 업데이트하고 민감 파일을 제거합니다.
- 브랜치 체크아웃:
git checkout dev-backend
.gitignore
업데이트:- 아래 내용을 추가:
/.gradle /.idea /out /build *.iml *.ipr *.iws local.properties
- 파일 제거:
git add . git commit -m "Update .gitignore" git push origin dev-backend
5. BFG Repo-Cleaner로 민감 파일 기록 제거
BFG Repo-Cleaner를 사용하여 Git 기록에서 민감한 파일을 완전히 제거합니다.
- BFG 다운로드 및 이동:
- 여기에서 bfg-1.14.0.jar 파일을 다운로드합니다.
- 프로젝트 루트 디렉토리로 파일을 이동합니다.
- 민감 파일 제거 명령어 실행:
java -jar bfg-1.14.0.jar --delete-files application.properties java -jar bfg-1.14.0.jar --delete-files local.properties
6. Git 저장소 정리
BFG 실행 후 저장소를 정리합니다.
git reflog expire --expire=now --all
git gc --prune=now --aggressive
7. 변경사항 강제 푸시
변경된 내용을 강제로 푸시합니다.
git push origin --force --all
git push origin --force --tags
8. Git 최종 정리
최종적으로 저장소에서 민감 정보가 완전히 제거되었는지 확인 후, 추가적인 정리를 진행합니다.
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push origin --force --all
git push origin --force --tags
9. 참고 자료 및 결론
이번 포스팅에서는 GitLab에서 GitHub로 리포지토리를 미러링하면서 민감 정보를 안전하게 제거하는 과정을 안내드렸습니다. 프로젝트를 공유하거나 협업하는 과정에서 민감한 정보가 노출되지 않도록 사전 조치를 취하는 것이 중요합니다.
참고 자료:
주의 사항:
- 작업 전에 백업을 권장합니다.
- 민감 정보 제거 후 Git 히스토리에 변경사항이 정확히 적용되었는지 확인하세요.
감사합니다! 😊