Lined Notebook

subtree add and remove

by 사슴비행기

Subtree

: 레포지토리 안에 레포지토리를 넣을 수 있는 github 명령어.

이렇게 하나의 레포지토리에 여러개의 프로젝트를 포함시킬 수 있음.

 

 

1. 부모 레포지토리 생성

==> 여러 프로젝트를 포함할 레포지토리

 

2. 레포지토리 클론

더보기

2-1. README.md 파일 추가하고 commit 및 push

1) The requested URL returned error: 403 에러 발생

==> Github주소가 잘 못 됨.

==> Github에서 주소 복사 시 (https://github.com/{githubNmae}/{projectName}.git) 이렇게 복사가 되는데 (https://{githubName}@github.com/{githubName}/{projectName}.git) 이렇게 변경해야 함.

//remote 확인
git remote -v
//origin의 주소 변경
git remote set-url origin https://{githubName}@github.com/{githubName}/{projectName}.git

 

 

3. 자식 레포지토리를 remote로 등록

1) 부모 레포지토리로 이동

git remote add {remote name] {git 주소}

==> remote name은 remote의 이름이 됨

==> git 주소는 https://github.com/{githubNmae}/{projectName}.git 형식으로 넣어야 The requested URL returned error: 403 에러를 막을 수 있음

git remote add login https://jeungeun0@github.com/jeungeun0/study-login.git

 

4. subtree 등록

git subtree add --prefix={부모 레포지토리에 저장할 폴더명} {자식 remote 이름} {원격 branch name}

==> 부모 레포지토리에 저장할 폴더명 : 이 폴더명으로 부모 레포지토리에 자식 레포지토리가 포함됨

==> 자식 remote 이름 : 3번에서 등록한 remote name을 작성하면 됨

==> 부모 레포지토리의 브랜치명을 입력하면 됨

git subtree add --prefix=login login main

1) Working tree has modifications. Cannot add. 에러

==> 부모 레포지토리가 최신이 아니어서 발생하는 에러.

==> 부모 레포지토리에서 commit, push 안 한 항목들을 push하여 최신상태로 만든 다음 다시 시도하면 됨.

 

2) fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 에러

==> remote주소가 이상하거나 push, pull. merge 등 원격 저장소와 통신할 때 언제든 발생할 수 있는 에러.

==> 방법은 2가지인데, 여기서는 기존 remote를 삭제하고 재등록하는 방법을 사용 (다른 방법은 아래 참고 블로그를 통해 봐주세요)

//제거
git remote remove [원격 저장소 이름(e.g., origin, master, main)]
//재등록
git remote add [새로운 원격 저장소 이름(e.g., origin)] [github 원격저장소 URL]

 

5. 부모 레포지토리 push

==> push하면, 부모 레포지토리에 자식 레포지토리가 생성 됨

==> 이 이후에 자식 레포지토리를 삭제해도 부모 레포지토리에는 파일과 커밋 내역이 남음

git push

 

6. subtree한 자식 레포지토리를 부모 레포지토리에서 삭제

git rm -rf {레포지토리 이름}

 

 

참고한 블로그


https://santokki.tistory.com/24

https://zzang9ha.tistory.com/294

https://dailylifeofdeveloper.tistory.com/m/213?category=855630

https://heytech.tistory.com/289#Step%----%--%EC%-B%--%EA%B-%A-%--%EC%A-%--%EC%-E%A-%EC%--%-C%--%EC%--%B-%EA%B-%B-%--%EC%A-%-C%EA%B-%B-

https://stackoverflow.com/questions/359424/detach-move-subdirectory-into-separate-git-repository/17864475#17864475

 

 

'Github' 카테고리의 다른 글

Remote branch {브랜치이름} not found in upstream origin  (0) 2023.01.03

블로그의 정보

Beautiful Coding

사슴비행기

활동하기