[Github] Repository를 하나로 합치기, 다른 계정 Repository 잔디심기

Mayton·2022년 5월 23일
0

aUth-Study(US)

목록 보기
2/4

Github을 배운다고 배웠지만, 그저 네이버 클라우드, 구글 드라이브 이용하듯 내가 공부한 기록 남기고, 대충 파일들 올라가는 것만 보고 신경을 안썼다. 그런데 생각해보니 누군가에게 제출했을 때 보여질 내 계정이 수십에서 수백명 중의 한명의 깃헙이라면 무조건 쳐다보지도 않을 깃헙이겠구나 라는 생각이 들었다. 그래서 오늘 하루종일 깃헙을 정리 하였고 문제가 있었다.

취준용으로 github 계정을 사용하고 있는데 심어놓은 잔디가 다 날라간다? 말도 안되는 일이다. 그래서 repository를 하나로 합치는 방법을 열심히 구글링 했고, git subtree의 명령어를 이용하면 된다!

*단! 하나로 합칠 때 새로운 repository를 만들어서 그 안에 내가 원하는 repository를 넣는 방식이다!

현재 상황

강의 때 작성했던 코드들이 각 강의당 하나의 repository에 나누어져 있었고, commit들을 모두 살려서 하나의 repository에 옮길 예정이다.

Repository 합치기

1. 새로운 repository 생성하기

특별할 것 하나없이 원하는 이름의 repository를 만들어 준다.

2. 로컬 저장소로 clone

git clone [http://github.com/in-woong/... (자신의 깃 주소)] 

3. git subtree 사용

git subtree add --prefix=기존레포명 기존레포주소 기존메인브랜치명

이때 내가 계속 본 오류는

fatal: couldn't find remote ref

의 오류 였는데, 위 기존 레포 브랜치 명을 새로운 레포의 브랜치 명으로 착각해서, 발생하였다.

4. 마무리

git add .
git commit -m
git push

등 을 통해 원격 저장소에 업로드 해주면 된다!

기존 레포의 삭제 등은 사용자가 원하는대로 하면 된다!

다른 계정 PR 올리는 것 잔디심기

git --mirror와 git--bare를 이용할 예정이며
땅뚱창고님의 블로그를 참고하였다.

git --bare를 통해 원격 저장소에서 tracking이 불가능 하도록 git clone을 하고, 그 정보들을 다시 git --mirror를 통해 repository에 올릴 것이다.

1. 새로운 Repository를 만든다

2. forked Repository 를 bare Clone 한다.

git clone --bare [repository 주소]

3. 새로운 Repository로 Mirror-push한다.

cd forked-repository.git
git push --mirror [repository 주소]

4. bare Clone 한 local Repository 삭제

rm -rf forked-repository.git

하지만 아쉽게도, 내가 했던 study의 내PR들을 merge 되어 commit 들이 하나도 남아있지 않았고, 내 branch들도 당연히 다 없어져서 잔디는 심지 못하게 되었다.... 미리미리 해놓을 걸...

profile
개발 취준생

0개의 댓글