(GitHub) 리포지토리의 하위 폴더 복사하기 (커밋 포함)
포스트
취소

(GitHub) 리포지토리의 하위 폴더 복사하기 (커밋 포함)

Unity 포트폴리오를 github에 올릴 때 같이 올리기 어려운 파일들이 있습니다.

저 같은 경우에는 유료 에셋 사용으로 인해서 스크립트만 올렸는데요.

커밋한 내용이 당연히 따라오지 못할줄 알았는데 생각보다 간단한 방법이 있었네요..ㅋㅋㅜㅜ

그렇다면! 리포지토리의 하위 디렉토리를 커밋한 내용과 함께 따로 저장하는 방법을 알아보겠습니다.

리포지토리 구조

RPG Game 리포지토리의 자식의 자식에 있는 Scripts를 빼오도록 하겠습니다.

1
2
3
4
( RPG 리포지토리 )
- RPG_Game
    - Assets
        - Scripts   ( 꺼내올 폴더 )

1. 새로운 리포지토리 생성

github 사이트에서 복사한 폴더를 담아줄 리포지토리를 생성해줍니다.


2. 복사할 git 폴더로 이동

git bash를 켜시고 로컬에서 자신이 복사하고 싶은 git 폴더로 이동합니다.

1
2
3
4
$ cd <복사할 폴더 경로>

# [ 예시 ]
$ cd C:/Users/git/RPG_Game


3. subtree를 사용해 옮길 폴더 복사

저는 Assets안에 Scripts를 복사하고 싶으니 옮길 폴더 명에 Assets/Scripts로 적겠습니다.

1
2
3
4
$ git subtree split -P <옮길 폴더 명> -b <브랜치 이름>

# [ 예시 ]
$ git subtree split -P Assets/Scripts -b splitted

이후 진행이 되고 Created branch "splitted"가 출력되면 성공한겁니다.

혹시 모르니 git branch를 사용하여 브랜치를 확인해봅시다.


4. 브랜치 Pull 받기

먼저 브랜치를 옮겨 담을 디렉토리를 생성해주고 이동해줍니다.

그리고 안에서 git도 생성해줍니다.

1
2
3
4
$ mkdir ../<생성할 폴더 이름>   # .. 는 하위 폴더 경로입니다.
$ cd ../<생성한 폴더 이름>

$ git init


브랜치 pull을 받아줍니다.

1
2
3
4
$ git pull <기존 리포지토리 경로> <브랜치 이름>

# [ 예시 ]
$ git pull ../RPG_Game/ splitted

이제 생성한 폴더로 이동하면 복사된 것을 보실 수 있습니다.


5. 로컬 디렉토리와 원격 디렉토리 연결

1
2
3
4
# 원격지 주소: 처음에 생성한 리포지토리 주소(Code -> HTML 주소)

$ git remote add origin <원격지 주소> 
$ git remote -v


[❗] 만약 잘 작성해도 에러가 뜬다면 origin을 삭제해주시고 원격지 주소를 손으로 직접 작성해주세요!

1
2
3
# origin 삭제 방법

$ git remote remove origin


6. 코드 Push

1
2
3
4
5
$ git push origin -u master

또는

$ git push origin -u main 


7. 혹시라도 github에 main 대신 master로 계속 잡힌다면!

git bash에서 다음과 같이 입력해주시면 됩니다.

1
2
3
4
5
6
7
git checkout master

git branch main master -f

git checkout main

git push origin main -f


8. 브랜치 삭제

깃허브에 잘 옮겨졌다면 기존에 사용한 splitted 브랜치를 삭제해줍니다.

1
2
3
$ cd <브랜치 생성했던 리포지토리>
$ git branch
$ git branch -d splitted


💡 참고 사이트

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

(Unity) Asset 메모리 최적화

(PlayFab) Google Play Game 로그인