인프런 강의를 듣다보니 한 강사님의 강의를 들으며 코드를 각각 리포지토리에 올리기보다 부모 리포지토리 안에 자식으로 넣고싶다는 생각이 들어 방법을 찾아서 적용해보고 해당 내용을 정리하게 되었다.
필자가 적용한 OS는 Mac이다!
Windows여도 방법은 크게 다르지 않지만 gitBash를 사용해야 한다는 점만 참고하면 좋을 거 같다.
1. GitHub에 부모로 사용할 리포지토리를 만들기
최상위로 관리할 폴더를 만들어야 아래 원하는 프로젝트를 넣을 수 있으니기 깃헙에 가서 부모 리포지토리를 하나 만들자
이 때는 아무것도 추가하지 말고 빈 리포지토리여야 수월하게 작업할 수 있다.
2. 만든 부모리포지토리를 본인 PC에 Clone하기
원하는 경로로 이동하여 gitHub에서 제공하는 HTTPS 경로를 넣거나 또는 git@github.com:본인계정이름/리포지토리이름.git을 넣으면 된다.
git clone https://github.com/Yelin-park/inflearn-Spring-JPA.git
git clone git@github.com:Yelin-park/inflearn-Spring-JPA.git
이 때 부모 리포지토리가 비어있는 경우 빈 리포지토리를 clone한 거 같다는 오류가 발생할 수 있다. 해당 부분은 무시해도 된다.
ambiguous argument 'HEAD': unknown revision or path not in the working tree. 이런 오류가 발생하면 아래 명령어를 입력해주면 해결할 수 있다. 아니면 부모리포지토리에 README 파일을 생성해서 commit, push를 해주면 해결된다.
git commit --allow-empty -n -m "커밋메시지"
3. 클론해준 부모 리포지토리로 이동하기
이동하지 않으면 계속 오류가 발생할 수 있으니 꼭 이동하자
git remote -v 명령어로 remote 현황을 확인할 수 있다.
4. 자식 리포지토리를 remote로 등록하기
본인이 자식으로 넣고싶은 프로젝트를 github에 share를 먼저 해줘야한다. 필자는 이 부분을 몰라서 조금 애먹었다..
그 후에 해당 리포지토리를 remote로 등록해줘야한다.
remote로 등록하는 행위는 부모 리포지토리에서 해야한다.
git remote add [remote 이름] [child git 주소]/원하는 remote name
git remote add jpa_application_1 git@github.com:Yelin-park/jpa_application_1
5. subtree 명령어로 등록
git subtree add --prefix=[부모 리포지토리에 저장할 폴더명] [child의 remote 이름] [원격 브랜치 이름]
git subtree add --prefix=jpa_application_1 jpa_application_1 main
6. git push
5번의 과정까지 마무리가 되었다면 push를 하자
깃허브에 들어가보면 정상적으로 프로젝트가 올라가있는 것을 확인할 수 있다.
* git permission denied 발생시)
위 과정에서 5번을 하다보면 git permission denied 관련된 에러가 발생할 수 있다.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
그럴 때는 터미널창을 열고 아래 명령어를 입력해주면
ssh-keygen -t rsa -C "본인 깃허브 계정 이메일주소"
Enter file in which to save the key (경로)
라는 문구가 뜨는데 SSH Key 저장 위치를 지정해주는 것이라 따로 수정하지말고 엔터를 눌러서 넘기면 된다.
그 다음 문구로 아래와 같이 뜨는데
Enter passphrase (empty for no passpharse):
SSH Key의 암호를 입력하는 의미이다. 따로 암호를 설정하지 않으면 엔터를 누르면된다.
그 다음은 암호 확인 문구가 뜬다
Enter same passphrase again:
입력한 암호가 있다면 입력 후 엔터를 없다면 그냥 엔터를 누르면된다.
위 과정까지 했다면 만들어진 id_rsa.pub 파일을 열어서 해당 내용을 복사하자
맥인 경우에는 파인더로 찾을 수 없으니 터미널로 해당 파일이 있는 경로로 이동하여 tail -f id_rsa.pub 명령어로 해당 파일의 내용을 확인하자
그 후에 깃허브로 들어가서 우측 상단의 프로필 사진을 클릭한 뒤 Settings를 클릭
Access 탭의 SSH and GPG Keys 클릭
그리고 New SSH key 버튼을 클릭하고 아래와 같은 화면이 나오면 Title은 원하는대로 입력해주거나 비워도된다.
Key type은 변경하지 않고 Key 내용 안에 아까 복사한 SSH Key 값을 넣어주고 Add SSH key 버튼을 클릭해주면 된다.
그 후에 터미널을 열어서 아래 명령어를 쳐보자
ssh -T git@github.com
Enter passphrase for key '경로/id_rsa':
Hi 본인 깃허브이름! You've successfully authenticated, but GitHub does not provide shell access.
이런 문구가 뜨면 정상적으로 된 것이다.
그 후에 다시 5번의 과정부터 시작하면 된다.
참고
https://santokki.tistory.com/24
'Git,GitHub' 카테고리의 다른 글
[Git] 실수로 삭제한 Branch 복구하기! (0) | 2024.12.13 |
---|---|
[Git] 기존 Project에 버전 관리에 포함되어 있는 파일 명령어로 삭제 (0) | 2022.07.18 |
[GitHub] GitHub_#2 (0) | 2022.06.12 |
[GitHub] GitHub_#1 (0) | 2022.06.07 |
[Git] Git_#3 (0) | 2022.06.07 |