기존 프로젝트가 private으로 되어 있었는데 개인적으로 특정 폴더를 public으로 변경하고 싶었다. 하지만 history도 가져가고 싶었다!
그래서 프로젝트를 개인 repo로 옮기고, 숨겨야 하는 폴더들을 삭제한 기록을 남긴다.(다른 사람들에게도 도움이 되기를 바라며...)
먼저 repo이동은 2가지 방법이 있다.
1. Mirroring
2. remote 추가
나는 두 번째 방법으로 진행했다.
먼저 mirroring부터 설명해보자면,
1. git clone --mirror {base_repo_url}
base repo내에서 위 명령어로 이동시키고자 하는 원본 repo를 복사한다.
그러면 base repo.git 폴더가 생긴다.
생성된 .git 폴더로 이동한 후, remote 주소를 추가해준다.
git remote set-url --push origin {new_repo_url}
base repo와 .git폴더 내부 remote origin 주소가 다르기 때문에, 추후 원하는 곳에 push할 수 있다.
git push --mirror
로 new repo에 push해주면 history까지 모두 잘 이동된 것을 확인할 수 있을것이다.
먼저 new repo를 clone해온다.(모두 clone 명령어는 아시리라 믿지만 첨부해둔다.) git clone {new_repo_url}
clone한 new repo내부로 이동한 후 base repo의 remote를 추가해준다.
git remote add {remote_name} {base_repo_url}
base repo의 내용을 가져온다.
git fetch {remote_name}
이 과정을 마치면 {remote_name}/main branch에 내용이 저장된다.
remote_name과 new_repo/main을 병합하고, push를 진행해주면 완료된다.
git merge {remote_name}/main --allow-unrelated-histories
git push
history까지 잘 이동된 것을 볼 수 있다!