git으로 관리되는 장고 프로젝트가 있습니다. 나는 그것을 나의 호스트에게 밀고있다. 이제, 나는 하나의 디렉토리 (inc. 모든 하위 디렉토리) 중 하나를 다른 git repo로 푸시 할 수 있기를 원합니다. 가능한 경우 어떻게 가능합니까?다른 git repo 안에 자식 repo를 넣을 수 있습니까
편집 : 그래서 그 디렉토리는 git repo 자체가되고 싶습니다.
git으로 관리되는 장고 프로젝트가 있습니다. 나는 그것을 나의 호스트에게 밀고있다. 이제, 나는 하나의 디렉토리 (inc. 모든 하위 디렉토리) 중 하나를 다른 git repo로 푸시 할 수 있기를 원합니다. 가능한 경우 어떻게 가능합니까?다른 git repo 안에 자식 repo를 넣을 수 있습니까
편집 : 그래서 그 디렉토리는 git repo 자체가되고 싶습니다.
당신은 submodules에 대한 자식의 지원을 볼 수 있었다. 두 번째 저장소를 주 프로젝트에 하위 모듈로 추가합니다 (예 : 같은 명령으로 : - 당신은 당신이 이상 밀어 수있는 전송을 사용하도록 origin
을 변경할 수 있으며 것처럼 다음 밀어
git submodule add git://wherever/blah.git library-code
git commit -m "Added a new submodule called 'library-code'"
당신이 library-code
하위 디렉토리로 변경, 그것은 부모 저장소가 존재하지 않는 것처럼입니다 완전히 독립적입니다.
하위 모듈을 특정 버전으로 지정하려면 서브 모듈로 변경하고 git checkout
을 사용하여 올바른 버전으로 전환해야합니다. 그런 다음 다시 메인 저장소 및 단계까지 변경과 함께 그 새로운 서브 모듈 버전을 커밋 :
git add library-code
git commit -m 'Change the submodule version'
주요 저장소의 나무 단지, 서브 모듈이에 있어야 버전을 저장 그래서 당신은 메인 저장소를 누르면 , 하위 모듈에있는 파일 중 하나를 밀고있는 것은 아닙니다.
: 역사를 보존하면서이 답변에 설명 된대로, 당신은 역사를 다시 쓰는 원래 저장소 및 사용자git filter-branch
를 복제해야합니다,이 하위 디렉토리를 분할하기 위해
그런 다음 새로 만든 저장소 GitHub 저장소로 밀어 넣고 원래 프로젝트로 돌아가서 하위 디렉토리를 제거한 다음 위에 설명한대로 하위 모듈로 바꿀 수 있습니다.
만약 당신이 힘내 개념에 익숙하지 않다면 이것은 당신에게 어려울 수 있습니다 - 나는 자식의 서브 모듈을 미리 읽을 것을 권한다.
특정 디렉토리를 변경하고 변경 사항을 적용하고 커밋 및 푸시하면 효과적으로 해당 디렉토리를 "밀고"있습니다.
다른 Git repo에 푸시하려는 디렉토리 만있는 경우 이것이 리포로 설정하려는 경우 Git Submodules을 볼 수 있습니다.
자식 서브 모듈을 살펴 보았습니까? git 저장소가 깨끗하게 중첩 될 수 있지만 완전히 독립적으로 유지됩니다.
즉, 푸시/풀 및 다른 커밋 트리 + 로그에 대해 다른 원격 URL이있는 하위 디렉토리를 주 프로젝트를 어수선하게 할 수 있습니다.
이미 내 하위 디렉토리에 코드가 있으므로 git repo로 변환하고 새로운 원격 저장소 (예 : github)로 푸시합니다. 그 일을 보여주는 예를 들려 줄 수 있습니까? 나는이 물건에 너무 초보자 인 것을 유감스럽게 생각한다. :) – yasar
하위 디렉토리에있는 모든 것의 역사를 보존하고 싶습니까? –
다른 원격 저장소에 더 큰 저장소를 추가하면 하위 모듈은 어떻게됩니까? 하위 모듈의 파일이 포함되어 있습니까? – yasar