git 폴더를 하위 모듈로 소급하여 변환 하시겠습니까?
꽤 자주 당신이 어떤 종류의 프로젝트를 작성하는 경우이고, 잠시 후에 프로젝트의 일부 구성 요소가 실제로 독립형 구성 요소 (아마도 라이브러리)로 유용하다는 것이 분명해집니다. 초기부터 그 아이디어가 있었다면 대부분의 코드가 자체 폴더에있을 가능성이 큽니다.
git 프로젝트의 하위 디렉토리 중 하나를 하위 모듈로 변환하는 방법이 있습니까? 이상적으로는 해당 디렉토리의 모든 코드가 상위 프로젝트에서 제거되고 하위 모듈 프로젝트가 적절한 기록과 함께 그 자리에 추가되고 모든 상위 프로젝트 커밋이 올바른 하위 모듈 커밋을 가리 키도록 발생합니다. .
하위 디렉토리를 자체 저장소로 분리하려면 filter-branch
원본 저장소의 복제본에서 사용하십시오.
git clone <your_project> <your_submodule>
cd <your_submodule>
git filter-branch --subdirectory-filter 'path/to/your/submodule' --prune-empty -- --all
그런 다음 원래 디렉토리를 삭제하고 상위 프로젝트에 하위 모듈을 추가하는 것입니다.
먼저 dir을 하위 모듈이 될 폴더로 변경하십시오. 그때:
git init
git remote add origin repourl
git add .
git commit -am'first commit in submodule'
git push -u origin master
cd ..
rm -rf folder wich will be a submodule
git commit -am'deleting folder'
git submodule add repourl folder wich will be a submodule
git commit -am'adding submodule'
나는 이것이 오래된 스레드라는 것을 알고 있지만 여기에 대한 답변은 다른 분기의 관련 커밋을 스쿼시합니다.
모든 추가 브랜치 및 커밋을 복제하고 유지하는 간단한 방법 :
1-이 git 별칭이 있는지 확인
git config --global alias.clone-branches '! git branch -a | sed -n "/\/HEAD /d; /\/master$/d; /remotes/p;" | xargs -L1 git checkout -t'
2-원격 복제, 모든 분기 가져 오기, 원격 변경, 디렉터리 필터링, 푸시
git clone git@github.com:user/existing-repo.git new-repo
cd new-repo
git clone-branches
git remote rm origin
git remote add origin git@github.com:user/new-repo.git
git remote -v
git filter-branch --subdirectory-filter my_directory/ -- --all
git push --all
git push --tags
할 수는 있지만 간단하지 않습니다. git filter-branch
, subdirectory
및 을 검색 submodule
하면 프로세스에 대한 적절한 글이 있습니다. 본질적으로 프로젝트의 두 개의 복제본을 생성 git filter-branch
하여 하나의 하위 디렉토리를 제외한 모든 것을 제거하고 다른 하위 디렉토리 만 제거합니다. 그런 다음 두 번째 저장소를 첫 번째 저장소의 하위 모듈로 설정할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/12514197/convert-a-git-folder-to-a-submodule-retrospectively
'developer tip' 카테고리의 다른 글
Android 레이아웃 XML에서 background, backgroundTint, backgroundTintMode 속성의 차이점은 무엇입니까? (0) | 2020.08.18 |
---|---|
LR, SLR 및 LALR 파서의 차이점은 무엇입니까? (0) | 2020.08.18 |
다른 div의 아래쪽 근처에 div 배치 (0) | 2020.08.18 |
표시가 테이블 셀로 설정된 요소의 경우 Colspan / Rowspan (0) | 2020.08.18 |
SpringData REST에서 @OneToMany 하위 리소스 연관 게시 (0) | 2020.08.18 |