728x90
프로젝트에 대해 각각 레포를 만들면 갯수가 너무 많아져서 하나의 레포에 여러개의 프로젝트를 관리해야겠다고 필요성을 느꼈다.!!
1. GitHub에 아무것도 없는 빈 레포를 하나 만든다.
- 부모 레포 역할을 함
- 처음 한번만 하면 됨
- 나는 lion_10이라는 부모 레포를 만들었다.
2. 로컬에서 편한 위치에서 명령창(git bash here) 열고 아래 명령어 작성한다.
- 이때 부모 레포가 비어진 경우 '빈 레포를 클론한 것 같다' 라는 경고 문구가 뜨지만 무시~~
git init
git clone <부모 레포 주소>
3. 만든 부모 레포로 이동하기
cd 부모 레포
4. 자식 레포들을 remote로 등록한다.
git remote add <remote name> <자식 git 주소>
- 나는 chat, sql, java 라는 이름으로 자식 레포를 등록했다.
- git remote -v 명령어를 통해 잘 등록되었는지 remote를 확인해본다.
5. subtree를 이용하여 부모 레포에 자식 레포를 더해준다.
git subtree add --prefix=<깃에 저장될 폴더 이름> <자식 remote 이름> <branch명>
- <깃에 저장될 폴더 이름>은 깃에서 보여질 폴더의 이름을 설정하는 것이다.
- <자식 remote 이름>은 위에서 설정한 자식들의 remote를 지정하면 된다.
- <branch 명>은 부모의 레포의 브랜치명을 작성하면 된다.
- 이때 부모 레포가 아무 커밋이 없는 경우
'ambigous argument 'HEAD': unknown revision or path not in the working tree.'
라는 오류가 뜰 수 있다. - 해결 방안 :
git commit --allow-empty -n -m "커밋메시지"
6. 깃에 push
git push
만약, git push를 했는데 오류가 난다면 기존에 데이터가 손실될 수 있기에 경고해주는 에러이다.
이는 아래 명령어를 이용하여 push한다.
git push origin +main
* 이후에 프로젝트를 올릴 때는 아래처럼 하면 된다!!!
git clone <부모 리포지토리 주소>
cd <부모 리포지토리 이름>
git subtree add --prefix=<폴더 이름> <자식 리포지토리 주소> <branch명>
git commit -m "커밋 메시지"
git push
728x90
'CS 지식' 카테고리의 다른 글
깊이우선탐색(DFS)과 너비우선탐색(BFS) (0) | 2024.10.23 |
---|---|
빌드 관리 도구 Maven과 Gradle 비교하기 (0) | 2024.05.09 |