728x90
반응형
질문 : 기존 Git 저장소를 다른 저장소로 가져 오는 방법은 무엇입니까?
XXX 라는 폴더에 Git 저장소가 있고 YYY 라는 두 번째 Git 저장소가 있습니다.
XXX 저장소를 ZZZ 라는 하위 디렉토리로 YYY 저장소로 가져오고 모든 XXX 의 변경 내역을 YYY에 추가하고 싶습니다.
이전 폴더 구조 :
├── XXX │ ├── .git │ └── (project files) └── YYY ├── .git └── (project files)
다음 이후의 폴더 구조 :
YYY ├── .git <-- This now contains the change history from XXX ├── ZZZ <-- This was originally XXX │ └── (project files) └── (project files)
이 작업을 수행 할 수 있습니까? 아니면 하위 모듈을 사용해야합니까?
답변
아마도 가장 간단한 방법은 XXX 항목 을 YYY 의 분기로 가져온 다음 마스터에 병합하는 것입니다.
YYY :
git remote add other /path/to/XXX git fetch other git checkout -b ZZZ other/master mkdir ZZZ git mv stuff ZZZ/stuff # repeat as necessary for each file/dir git commit -m "Moved stuff to ZZZ" git checkout master git merge ZZZ --allow-unrelated-histories # should add ZZZ/ to master git commit git remote rm other git branch -d ZZZ # to get rid of the extra branch before pushing git push # if you have a remote, that is
나는 실제로 두 개의 저장소로 이것을 시도했고 작동합니다. Jörg의 답변 과 달리 다른 저장소를 계속 사용할 수는 없지만 어쨌든 그것을 지정했다고 생각하지 않습니다.
참고 : 이것은 원래 2009에서 작성되었으므로 git은 아래 답변에서 언급 한 하위 트리 병합을 추가했습니다. 물론이 방법이 여전히 작동하지만 나는 아마도 오늘 그 방법을 사용할 것입니다.
출처 : https://stackoverflow.com/questions/1683531/how-to-import-existing-git-repository-into-another
728x90
반응형
'개발관련 > Git' 카테고리의 다른 글
Git에서 파일의 일부만 커밋 (0) | 2021.06.13 |
---|---|
새 저장소에 대한 'git push'에 원격 원본이 이미 있습니다. (0) | 2021.06.13 |
GitHub에서 단일 파일 다운로드 (0) | 2021.06.12 |
커밋되지 않은 기존 작업을 Git의 새 분기로 이동 (0) | 2021.06.11 |
Git의 루트 폴더에서만 파일을 제외하는 방법 (0) | 2021.06.11 |