자바스크립트로 다양한 미니게임을 만들면서 공부중인데, 기록은 하고싶고.. 매번 저장소를 만들자니 너무 남용되나 싶어서 미니게임을 한번에 보관하고자하는 저장소를 만들기로 하였다.
이전에 저장소를 만들어서 올려둔 타이머도 함께 보관하기 위해서 깃 저장소를 합치는 방법을 구글링해보았다.
👩🔧 시도 >
현재 만들어둔 저장소에 바로 진행하기에 실패확률이 있어서 test 파일을 2개 만들어서 진행해보기로 했다.
1. testfile 1
- text1 파일이 담겨있는 폴더 1개가 담겨있다.
test1project-folder
- text 1
2. testfile 2
- text 파일이 2개가 담겨있다.
- text 2
- text 3
📄 확인해야 할 결과물
- testfile2 저장소에 담겨진 파일을 하나의 폴더로 합쳐서 testfile1 저장소에 담아야한다.
- 커밋 히스토리까지 가져와야 한다.
1. 상위 저장소에서 진행
> testfile1에서 git bash를 실행하여 진행하였다.
2. 원격 참조 추가
#git remote add 참조시이름 저장소주소
>git remote add testfile2-repo http://~.git
- '참조시이름' 에는 subtree명령어 진행시 참조될 이름이므로 원하는대로 임의작성하면 된다.
- '저장소주소'에 testfile2의 주소를 붙여넣기한다. (저장소주소는 해당저장소 url.git 이다.)
#git remote -v
- 위 명령어를 통해 제대로 추가됐는지 확인 가능하다.
3. subtree 추가
#git subtree add --prefix=폴더이름 참조시이름 브랜치이름
>git subtree add --prefix=test2project-folder testfile2-repo master
- '폴더이름'은 testfile1에 testfile2가 추가될 폴더이름이다.
- '참조시이름'에 1번에서 작성한 이름을 작성한다.
- '브랜치이름', 어느 브랜치에서 add할건지 정해준다.
4. push
>git add tesefile2project-folder
>git commit -m "project combined"
>git push origin master
- 이제 평소하던대로 push를 진행하면 된다.
📄 결과 >
✅ testfile2 저장소에 담겨진 파일을 하나의 폴더로 합쳐서 testfile1 저장소에 담아야한다.
✅ 커밋 히스토리까지 가져와야 한다.
❎ 커밋 히스토리를 전부 가져왔지만, 마지막에 push할때 commit 내용이 제대로 작성되지 않았다.. 이유가 뭘까..
👍
1. testfile 1
test1project-folder
- text 1
test2project-folder
- text 2
- text 3
- testfile1 저장소에 testfile2인 'test2project-folder' 폴더 하나로 합쳐져서 제대로 병합이 되었다.
- commit 내용도 전부 가져와졌다.
👎
- 마지막 commit에 분명히 'project combined'로 작성했는데 아래와 같은 commit내용이 올라갔다... 왜그런지.. 모르겠다.. 다시 공부해야겠ㄷ.....
> Add 'popoproject/' from commit 'b7698eda67d5e24b9da16c62cb41060f38e5…78c'
'Git & GitHub' 카테고리의 다른 글
새로운 branch 생성하기 (0) | 2020.12.05 |
---|---|
jekyll 테마 사용 | github 블로그 개설하기 (0) | 2020.11.24 |
stage 상태에서 unstaged 상태로 되돌리기 (1) | 2020.10.14 |
GitHub 프로젝트 업로드하기 | Git Bash (0) | 2020.09.21 |
GitHub의 잔디가 심어지지 않을 때 (0) | 2020.09.20 |