힘내 하위 모듈 추가 : "git 디렉토리가 로컬에서 발견되었습니다"문제
실제로 git submodule
하위 명령을 포함하여 git 사용 방법을 배우려고합니다 . SSH를 사용하여 git 저장소를 호스팅, 푸시 및 풀 할 수있는 서버를 이미 설정했습니다. 이 서버에서 모든 프로젝트를 하위 모듈로 저장하려는 기본 git 저장소 "Travail"을 만들었습니다.
내 Travail 저장소에서 이미 하위 프로젝트로 내 프로젝트를 추가했습니다 tools/libft
.이 하위 모듈을 개발하여 푸시 및 풀 수 있습니다.
그러나 다른 하위 모듈 (서버의 fdf.git에서 fdf라는 이름)을 추가하려고하면 다음과 같은 문제가 발생합니다.
git submodule add ssh://XXX.XXX.XXX.XXX:XXXXX/opt/git/fdf.git projets/fdf
'projets / fdf'의 git 디렉토리는 remote (s)를 사용하여 로컬에서 찾을 수 있습니다. origin ssh : //git@XXX.XXX.XXX.XXX : XXXXX / opt / git / fdf.git이 로컬 git을 재사용하려면 ssh : //XXX.XXX.XXX.XXX : XXXXX / opt / git / fdf.git에서 다시 복제하는 대신 '--force'옵션을 사용하십시오. 로컬 git 디렉토리가 올바른 저장소가 아니거나 이것이 '--name'옵션으로 다른 이름을 선택한다는 의미가 확실하지 않은 경우.
실제로 하위 디렉토리가 없습니다 projets/
git submodule sync
하위 스레드 의 원본 리포지토리에 대한 URL이 변경되었을 수있는 .gitmodules 파일을 사용 하거나 편집 해야하는 다른 스레드를 읽었 습니다.
그러나 내 .gitmodules 파일에는 projets / fdf가 아니라 내 첫 번째 하위 모듈 (tools / libft)에 대한 정보 만 포함되어 있습니다.
[submodule "tools/libft"]
path = tools/libft
url = ssh://git@XXX.XXX.XXX.XXX:XXXXX/opt/git/libft.git
프랑스 학생으로서 나는 가지고있는 영어 문서에서 무언가를 놓칠 수 있었지만 검색했는데 왜이 문제가 발생하는지 이해할 수 없습니다.
해결책을 얻을 수 있다면 기쁠 것입니다.하지만 설명 만 있으면 도움이 될 것입니다.
최근에 삭제 한 서브 모듈과 동일한 경로로 서브 모듈을 추가하려고하는이 SO 게시물에 왔습니다.
이것이 궁극적으로 나를 위해 일한 것입니다 ( 이 기사는 많은 도움이되었습니다 ).
아직 실행 git rm --cached path_to_submodule
하지 않았 rm -rf path_to_submodule
거나 (후행 슬래시 없음) 그렇게하면됩니다!
그때:
.gitmodules
파일 에서 관련 줄을 삭제 하십시오. 예를 들어 다음을 삭제하십시오.[submodule "path_to_submodule"] path = path_to_submodule url = https://github.com/path_to_submodule
.git / config에서 관련 섹션을 삭제하십시오. 예를 들어 다음을 삭제하십시오.
[submodule "path_to_submodule"] url = https://github.com/path_to_submodule
rm -rf .git/modules/path_to_submodule
그런 다음 마침내 할 수 있습니다.
git submodule add https://github.com/path_to_submodule
나는 jbmilgrom의 솔루션을 시도했다. 특히 나는 시도 git rm --cache
했다. 디렉토리 / 서브 모듈이 없었기 때문에 나에게는 효과가 없었다. 나를 위해 일한 것은 다음과 같습니다.
rm -rf .git/modules/blah
git submodule add git://path.to.new
나는 명령과 다른 모든 디렉토리 --force
내에서 시도한 후에 이것을 마스터 등으로 푸시했다 ... 디렉토리가 존재하지 않았으며 캐시에 대한 이유가 없었다. 이 오류가 있었던 곳 에서 밝혀 졌습니다 .git submodule
rm
.git/modules
'projets/fdf'
디스크에서 디스크를 삭제했을 수 있지만 Git 리포지토리에는 여전히 디스크가 있습니다. git rm -rf projets/fdf
힘내에서 그것을 제거하고 변경 사항을 커밋하는 데 사용하십시오 . 그런 다음이 폴더를 하위 모듈로 추가 할 수 있습니다.
하위 모듈 디렉토리를 이미 삭제 한 경우 나머지 jbmilgrom의 지시 사항을 따르십시오. 핵심은 rm -rf .git/modules/path_to_submodule
그러나 먼저 전체 부모 repo 디렉토리를 백업하십시오 .
하나의 하위 모듈 만 있다면 삭제하십시오. .gitmodules
이 두 명령은 저에게 효과적입니다.
rm path/to/submodule -rf
rm .git/modules/path/to/module -rf
'Programing' 카테고리의 다른 글
Spring에서 Tomcat이 제공하는 JNDI DataSource를 사용하는 방법은 무엇입니까? (0) | 2020.06.09 |
---|---|
노드 : 콘솔 대신 파일에 로그인 (0) | 2020.06.09 |
PowerShell에서 MD5 체크섬을 얻는 방법 (0) | 2020.06.09 |
NameError를주는 모듈을 다시로드하는 중 : 이름 'reload'가 정의되지 않았습니다. (0) | 2020.06.09 |
문자열의 시작과 끝에서 공백 자르기 (0) | 2020.06.09 |