projects/myRepo
디렉토리에 하위 모듈이있는 git 저장소가 있습니다.
디렉토리 이름을
projects/my-repo
로 바꾸고 싶습니다.
.
이 질문에 따르면
mv
로 간단히 수행 할 수 있습니다.
. 그러나 하위 모듈이있는 저장소에서는 git이 계속 알려줍니다.
fatal: Not a git repository: projects/myRepo/.git/path/to/submodule```
git status
에 대 한.
서브 모듈 설정 :
[submodule "path/to/submodule"]
path = path/to/submodule
url = https://github.com/user/projectName.git
어떻게 서브 모듈의 '내부 경로'가 업데이트되지 않습니까?! 이 서브 모듈 경로를 업데이트하도록 git에 지시하는 방법이 있습니까?
- 답변 # 1
- 답변 # 2
프로젝트 디렉토리를 변경 한 후에도 같은 오류가 발생했습니다 . iOS 6 XCode 4 프로젝트가 있지만 중요하지 않습니다.
각 서브 모듈에 대해, 그것이 생각하는 절대 경로를 변경해야합니다. 경로는 해당 서브 모듈의 .git 파일에 설정됩니다. 하위 모듈의 .git은 표준 git 디렉토리의디렉토리와 달리파일입니다.
각 서브 모듈에 대해 .git 파일에서 .gitdir 행을 변경하십시오. 내 프로젝트의 예는 다음과 같습니다.
파일 : /path/to/project/submodules/RestKit/.git
이전 gitdir :/path/to/project //. git/modules/submodules/RestKit
이후 gitdir :/path/to/project //. git/modules/submodules/RestKit
- 답변 # 3
동일하게 동일한 동작을 경험했습니다. 하위 모듈이있는 디렉토리를 삭제하고 올바른 이름의 빈 디렉토리로 다시 만든 다음
git submodule update --init
를 실행하여 문제를 해결했습니다. 다시 초기화하십시오. 모두 해결되었습니다. 아마도 일부 권한 문제 (이전에는 백업에서 해당 디렉토리를 검색했으며 그에 대한 권한이 때때로 이상합니다). - 답변 # 4
오늘 하위 모듈의 이름을 바꾸는 데 동일한 문제가 있었고 마지막으로 다음 단계를 사용하여 수정했습니다.
이전 모듈 이름이
<올>old/module
라고 가정 새로운 것은new/module/path
입니다레포의 뿌리 (
repo_root
) ),mv old/module new/module/path
.git/modules
로 이동 <올>mv old/module new/module/path
(필요한 경우 먼저 폴더를 만듭니다)와이즈 비즈 변경 :
new/module/name/config
업데이트 기입. 이 구성 파일에서worktree
까지의 상대 경로 여야합니다.repo_root/new/module/path
로 이동repo_root
를 편집 ,new/module/path/.git
를 변경 이 파일에서gitdir
까지의 상대 경로와이즈 비즈 변경 마스터 리포지토리 :
repo_root/.git/modules/new/module/path
가 포함 된 줄 찾기.git/config
로 업데이트[submodule "old/module"]
- SSH를 사용하여 git에 원격 저장소를 추가하는 방법은 무엇입니까?
- c++ : CMake 프로젝트에서 git 하위 모듈의 여러 복제 방지
- git : 자식 Bash를 만드는 방법 서브 모듈에서 지점 이름 표시
- GitLab 자체 관리 서브 모듈을 DeepSource.IO에 연결하는 방법
- GitHub 개인 저장소 새 소유자로 전송되지 않습니까?
- git : 하위 모듈을 공개적으로 사용하지만 로컬에서 단일 클론에 대한 심볼릭 링크를 사용하는 방법은 무엇입니까?
- 동일한 하위 모듈을 가져오고 해당 하위 모듈은 각각 동일한 버전이어야 하는 두 개의 git repos를 처리하는 방법은 무엇입니까?
- git : 차이점이 있는 크로스 플랫폼 프로젝트의 저장소 관리
- 마스터 분기에 병합하지 않고 gitflow를 사용하여 '기능' 분기 삭제
- git : 분기된 프로젝트의 원격 URL 변경
웨스턴의 테스트 (복제 된 저장소에서 하위 모듈의 복제, 초기화 및 업데이트)가 해당 하위 모듈을 포함한 디렉토리의 이름을 바꿀 때 예상대로 작동했기 때문에 하위 모듈
.git
에서 무언가 잘못되었을 것입니다 원래 Git 저장소 하위 모듈에 있습니다.'
myRepo
를 참조하는 파일을 비교/찾을 수 있습니다 첫 번째 하위 모듈에서 '. 두 하위 모듈의 내용을 비교할 수도 있습니다 (첫 번째는 이름을 바꾸려고 시도했으며 두 번째는 복제 한 repo에 포함되어 있습니다)