[git] subtree로 저장소 합치기

·2022년 2월 11일
0

개발 기록

목록 보기
19/68

오랜만에 유튜브 강의 따라 만들기를 해봤다.

강의를 들으며 chatting-app이라는 디렉토리에서 작업했고 저장소에 올리기 위해 git도 사용했다. 다 하고 푸시를 하려고 보니 How-to-make라는 저장소에 하위 디렉토리로 올려야겠다는 생각이 났다.

그런데 지금 작업 상태를 보면 chatting-app이라는 폴더에도 .git이 있기 때문에 이대로 How-to-make 저장소의 하위 디렉토리로 푸시를 하게되면 submodule로 저장이 된다.

.git을 지우고 파일들을 옮겨서 푸시를 할 수 있겠지만 커밋을 살리면서 디렉토리 형태로 올라가는 방법을 찾아봤다.

subtree 명령어 사용하기

  1. 우선 평소 작업하던대로 chatting-app 저장소를 만들어서 chatting-app 디렉토리의 원격 저장소로 연결한다. (저장소끼리 합치는 것이기 때문에)

  2. 상위 디렉토리가 될 저장소를 클론한다. 나는 How-to-make 저장소를 클론

  3. 대망의 합치기(상위 디렉토리에서 명령어를 사용해야 한다.)

// git subtree add --prefix=하위디렉토리가상위디렉토리에들어가서가질이름 하위디렉토리가될저장소의주소 가져올브랜치
git subtree add --prefix=chatting-app https://github.com/moonyerim2/chatting-app master
  1. 푸시 해주기. git status에는 아무것도 없지만 푸시를 한 번 해준다.
git push origin master

그럼 이런 커밋메세지가 작성된다. 커밋을 안하고 바로 푸시하니까 수정은 못하는 것 같다.

결과

커밋...이랄 것도 없지만 아무튼 남아있고 디렉토리 형태로 잘 합쳐진 것을 확인할 수 있다.
필요 없어진 chatting-app 저장소는 삭제해도 된다.

0개의 댓글