목적
학습을 진행하며 단계별로 Repository를 생성하였으나, 관리가 용이하지 않아 관련 있는 Repository를 하나의 Repository로 묶으려 하였으며, 이전 커밋 기록은 유지되도록 하는 것이 목표이다. (다음 6개의 Repository를 하나로 관리하고자 한다.)
1. 새로운 Repository 생성
깃허브 > Repositories > [New] 버튼 클릭 > Repository의 정보를 입력한 후 [Create repository] 버튼을 눌러 신규 Repository를 생성한다.
2. 새로운 Repository 복제
[Code] 버튼 클릭 > Repository의 URL을 복사한다.
쉘을 실행한 후 복제하고자 하는 위치로 이동하여 아래의 명령어를 실행한다.
git clone https://github.com/Young-Geun/JPA.git
3. 새로운 Repository에 Commit 기록 남기기
방금 복제한 Repository는 신규로 생성한 후 어떠한 기록(Commit 또는 Push)도 없기 때문에 현재의 상태에서 Repository를 합치면
아래와 같은 오류가 발생한다.
Working tree has modifications. Cannot add.
따라서 위의 오류를 방지하기 위하여 복제한 Repository에 Commit 이력을 추가해준다.
아래의 명령어 2개를 순서대로 실행해 준다.
git add .
git commit -m 'Init Commit'
4. Repository 합치기
아래의 명령어를 통해 기존의 Repository를 합친다.
git subtree add --prefix=기존리포지토리명 기존리포지토리주소 기존브랜치명
# EX)
git subtree add --prefix=JPA-Basic https://github.com/Young-Geun/JPA-Basic.git main
4. 신규 Repository에 Push
이제 새롭게 만든 Repository에 Push를 진행할 것이다. 해당 작업만 완료하면 정상적으로 Repository 합치는 작업은 마무리된다.
아래의 Push 명령어를 수행한다.
git push origin HEAD:main --force
만약 명령어를 입력하였는데 Push가 정상적으로 수행되지 않고 오류가 발생한다면, 아래의 명령어 추가적으로 수행한 후 다시 시도한다.
git remote add origin [신규리포지토리 주소]
Ex) git remote add origin https://github.com/Young-Geun/JPA.git
# remote 명령어가 성공했다면, 바로 전 단계에서 실패한 명령어를 다시 입력한다.
git push origin HEAD:main --force
Push가 정상적으로 수행되었다면, 'JPA-Basic' Repository가 'JPA' Repository로 복제된 것을 확인할 수 있다.
또한 commits 수를 통해 이력까지 그대로 보존되었음을 알 수 있다.
References.
1. 개발냠냠 - [Git] GitHub 여러 Repository 합치기 간단 총 정리
'Tools' 카테고리의 다른 글
[GitHub] 깃허브 Private repository commit 잔디 보이게하기 (0) | 2024.12.01 |
---|---|
[IntelliJ] 인텔리제이 폰트 사이즈 조절하기 (with 마우스 휠) (0) | 2023.06.30 |
[IntelliJ] 인텔리제이 단축키 모음 (0) | 2023.01.31 |
[IntelliJ] Find in Files 검색 결과 늘리기 (0) | 2023.01.26 |
[IntelliJ] 인텔리제이 세로줄 제거 (2) | 2023.01.26 |