반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- container query
- 컴포넌트 마크업
- ts 타입
- resposive web
- 티스토리챌린지
- 리소스 로딩제어
- 웹 성능 최적화
- 실행컨텍스트
- 정처기 준비
- cli명령어
- typeScript
- 개발자 자격증
- TS
- CSS
- CLI
- 렉시컬 환경
- 코드 리팩토링
- 변수표기법
- FE
- 타입스크립트 원시 타입
- execution context
- 시맨틱 마크업
- 타입스크립트
- 정처기 꿀팁
- js
- 정처기 필기
- 폴더통합
- JavaScript
- 오블완
- at-rule
Archives
- Today
- Total
ungju 님의 블로그
커밋 내역 유지하면서 레포지토리 통합하기(git subtree) 본문
반응형
문제 발생
01-folder, 02-folder의 폴더가 각각 레포지토리로 관리되고 있고,git init을 하지 않은 상태인 03-folder는 root/ 의 하위로 추적 및 관리가 되고 있는 상태였다.
`root`폴더를 원격으로 올리니 `03-folder`만 업데이트되는 문제가 발생!
🔥 원하던 폴더 구조와 깃 관리 상태(로컬의 상태와 동일)root의 하위로 모두 업데이트
─── root/
├── 01-folder
├── 02-folder
└── 03-folder
😑 문제 발생 상태
로컬에선 위와 같은 구조였는데 원격저장소에 올리니,root하위로 03-folder 만 올라감 ( ; _ ; )
─── root/
└── 03-folder
─── 01-folder /* 개별 레포지토리로 관리되고 있음. */
─── 02-folder /* 개별 레포지토리로 관리되고 있음. */
해결
1️⃣ 새로운 root-01폴더 생성
/* root 폴더 생성 */
mkdir root-01
/* root 폴더로 이동 */
cd root-01
2️⃣ 깃 초기화
git init
root-01 초기화 상태 확인!
3️⃣ 가져와야 할 01-folder의 각 원격저장소 경로를 remote 등록
remote 주소 등록
git remote add <원격 이름> <원격저장소 URL>
git remote add folder01 <01-folder의 원격저장소 URL>
등록 후 remote 확인
git remote -v
4️⃣ 최신상태 반영하기
git fetch <원격 이름> <브랜치>
git fetch folder01 main
5️⃣ git subtree 명령어로 폴더 구조 통합
git subtree add --prefix=<폴더명> <원격 이름> <브랜치 이름>
git subtree add --prefix=01-folder folder01 main
6️⃣ 통합 후 필요없는 remote 삭제!
통합이 목적이었고, 해당 폴더는 더 이상 업데이트 될 계획이 없기 때문에 지워버렸다.
remote 지우기
git remote remove <원격 경로 이름>
git remote remove folder01
잘 지워졌는지 확인하기!
git remote -v
🧩 모아보기 🧩
1. 루트 폴더 생성 및 초기화
mkdir root-01
cd root-01
git init
2. 원격 등록 → fetch → subtree 병합 -> (선택) 원격 삭제
(1) 원격 등록
git remote add folder01 <01-folder 원격 URL>
(2) 원격 최신 상태 가져오기
git fetch folder01 main
(3) subtree로 폴더 병합
git subtree add --prefix=01-folder folder01 main
(4) (선택) 원격 삭제
git remote remove folder01
3. `02-folder` 도 똑같이 반복!
캬캬 이러면 커밋 내역과 git graph 이력까지 모두 유지하면서 폴더 구조를 통합할 수 있다!
커밋 내역이 날아갈까봐 안타까웠는데 완저니 성공
👩💻 회고
처음부터 폴더구조를 잘 계획했으면 이런 일이 일어나지 않았을 것이다.
평소에는 잘 일어나지 않을 바보같은 상황이었고🥹, 이런 일이 일어나지 않아야하겠지만!!
덕분에 안전하게 git 내역을 포함해 폴더를 병합하는 방법을 배웠으니 오히려 좋아🍀