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

+ Recent posts