상황
예전에 협업했던 레포지터리를 메인에 고정해두려고 했다. 다른 친구가 소유자인 레포지터리여서 Fork를 했는데.. 저장소를 공개로 설정 할 수 없었다. 내가 Contributor인데도 소유자가 Private로 설정해둬서 나도 공개가 안되는 상황.
깃허브 정책상 원본(Parent) 저장소가 'Private'이면, 거기서 포크해온 저장소도 강제로 'Private'이 유지된다고 한다.
이런 경우에 해결할 수 있는 방법인 Mirror Push를 하기로 했다.

Mirror Push
이 방법은 원본과의 연결 고리를 끊고, 내 소유의 새 공개 저장소를 만드는 방법이다.
진행 방법
- 새 저장소 생성
깃허브에서 New Repository를 누르고, 이름을 정한 뒤 Public으로 생성
(README 등 아무것도 생성하지 않은 빈 상태여야 함) - 터미널(CMD) 열기
아래 명령어를 순서대로 입력
# 1. 원본(상대방) 저장소를 임시 폴더에 복제
git clone --bare https://github.com/원본아이디/프로젝트명.git
# 2. 해당 폴더로 이동
cd 프로젝트명.git
# 3. 내 새 저장소로 강제 푸시 (거울처럼 그대로 복사)
git push --mirror https://github.com/내아이디/새저장소명.git
# 4. 임시 폴더 삭제
cd ..
rm -rf 프로젝트명.git
결과 확인
미리 만들어둔 빈 저장소에 내가 원하는 프로젝트가 미러푸쉬되어, 기존 원본과는 별개의 저장소가 만들어진다.
실제 확인해본 결과, 아래처럼 커밋내역이나 기여자가 기존 저장소와 동일하게 나타나는 것을 확인할 수 있다.

주의점
나의 경우는 보안이 중요한 프로젝트는 아니었기 때문에 위와 같은 방법으로 내 저장소에서 Public으로 공개했지만,
해당 코드가 회사의 기밀이거나 팀원들과 "외부 공개 금지" 약속을 했다면, 공개(Public)로 전환할 때 주의가 필요하다.
대화를 통해 잘 얘기해서 전환하도록 합시다.
'참고용' 카테고리의 다른 글
| MobaXterm 설치 및 AWS EC2 인스턴스 접속 방법 (0) | 2026.03.03 |
|---|---|
| RustDesk 중계 서버 구축하기 (3) | 2025.07.12 |
| 파이썬에서 딕셔너리(dict) ↔ JSON 변환하는 코드 (0) | 2025.05.20 |
| Javascript) Math.random()을 통해 1~100까지 랜덤한 정수를 구하는 방식에 대하여 올림과 내림에 관한 고찰 (0) | 2025.05.09 |
| 리눅스 시스템 시간과 실제 시간이 맞지 않는 경우 (0) | 2025.04.22 |