새 저장소를 초기화하십시오.
여러 프로젝트에서 원하는 버전의 파일을 복사하여 함께 결합하십시오. 필요한 경우 디렉토리 구조를 재정렬 할 수 있습니다. 파일에 예상되는 내용이 있는지 확인하십시오.
설정 .gitignore
, .gitattribute
등 모든 항목을 추가하고 새 repo에 대한 첫 번째 커밋을합니다.
여러 프로젝트에서 분기를 가져와 -s ours
옵션으로 병합하십시오. ours
전략은 실제 내용이없는 기록 만 병합합니다.
예 :
의 우리가 RepoA, RepoB 및 RepoC, 모든 분기 master
을 가지고 있다고 가정 해 봅시다. 우리는 세 가지 브랜치의 최신 버전의 파일을 병합 할 것입니다.
git init RepoABC
cd RepoABC
#copy the files all RepoA, RepoB, RepoC and rearrange the directory structure if necessary.
#add .gitignore, .gitattribute, etc if necessary.
git add .
git commit -m 'new root for combining RepoA RepoB and RepoC'
git fetch origin_repoa master:repoa_master
git fetch origin_repob master:repob_master
git fetch origin_repoc master:repoc_master
git merge repoa_master repob_master repoc_master -s ours -m 'Merge and preserve the histories of RepoA, RepoB and RepoC, with merge strategy "ours"'
이제 새로운 repo의 분기에 중점을두고 새로운 변경을 할 수 있습니다. 역사는 유보되었고 우리는 그 역사를 되돌아 볼 수 있습니다. 디렉토리 구조가 재정렬 된 경우 처음 커밋을 체크 아웃 할 때 약간의 문제가 발생할 수 있습니다. 새 폴더와 파일은 커밋이 체크 아웃 된 후 untracked 파일로 유지됩니다. git clean -df
은 건너 뛰기 때문에 rm -rf
번만 입력해야합니다.
문제를 해결하는 데 유용한 답변을 얻었습니까? 그렇다면 답변으로 표시 할 수 있습니다. 또한 비슷한 질문을하는 사람들에게도 도움이 될 것입니다. –