Git 하위 모듈 추가: "git 디렉토리가 로컬로 검색됨" 문제
저는 사실 깃을 사용하는 법을 배우려고 노력하고 있습니다.git submodule
하위 명령SSH를 사용하여 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.XXX.XXX.XXX에서 다시 복제하는 대신 이 로컬 git 디렉토리를 다시 사용하려면 '--force' 옵션을 사용합니다.로컬 Git 디렉토리가 올바른 보고서가 아니거나 이것이 무엇을 의미하는지 잘 모를 경우 '--name' 옵션이 있는 다른 이름을 선택합니다.
에 실제로 하위 디렉터리가 없습니다.projets/
나는 다른 스레드에서 내가 사용해야 할 것을 읽었습니다.git submodule sync
또는 .gitmodules 파일을 편집하여 하위 모듈의 원본 저장소에 대한 URL을 변경할 수 있습니다.
그러나 내 .gitmodules 파일에는 projets/fdf:에 대한 정보가 아니라 내 첫 번째 하위 모듈(도구/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
그것이 이 오류가 있었던 곳입니다.
만약 당신이 나처럼 서브모듈 디렉토리를 이미 삭제했다면, jbmilgrom의 나머지 지침을 따르십시오.는 심은입니다.rm -rf .git/modules/path_to_submodule
먼저 전체 상위 repo 디렉터리를 백업하십시오.
만 하면 ..gitmodules
은 당신의 다니있습수를 했을 수 있습니다.'projets/fdf'
Git 저장소에 저장되어 있습니다.사용하다git rm -rf projets/fdf
Git에서 제거한 다음 변경 사항을 커밋합니다.그런 다음 이 폴더를 하위 모듈로 추가할 수 있습니다.
이 두 가지 명령은 저에게 적합합니다.
rm path/to/submodule -rf
rm .git/modules/path/to/module -rf
하위 모듈을 복제하는 동안 이 작업을 수행할 수 있습니다.
git 하위 모듈 추가 --name 하위 모듈_name 하위 모듈 경로
이렇게 하면 프로젝트에 하위 모듈이 추가되고 다음과 같은 구조로 추가됩니다..gitmodules
java.
그런 다음 오래된 것을 원하지 않으면 제거할 수 있습니다..gitmodules
프로젝트에서 하위 모듈 폴더를 구성하고 삭제합니다.
같은 문제가 있었고, 이것이 저에게 효과가 있었습니다.
# force register the submodule in .gitmodules
git submodule add -f <name> <path>
# force git to update cached submodule configs
git submodule sync --recursive
문서에서:
동기화 [--sync] [--] [...]
하위 모듈의 원격 URL 구성 설정을 .git 모듈에 지정된 값으로 동기화합니다.이미 .git/config에 URL 항목이 있는 하위 모듈에만 영향을 줍니다(초기화되거나 새로 추가된 경우).이 기능은 하위 모듈 URL이 업스트림으로 변경되고 그에 따라 로컬 리포지토리를 업데이트해야 하는 경우에 유용합니다.
문제는, 당신의 말에도 불구하고..gitmodules
, 구성 " " ", " ".git/modules/tools/libft
URL을 있습니다. 이 모듈은 URL입니다.
은 용자를솔션루른입니다.rm -rf .git/modules/<repo>
는 단지 " 구을삭는중다니입하" 하는 것입니다.git submodule sync
업데이트합니다.
저는 빈 서브모듈(파일, 분기 없음)을 추가하고 다른 답변에 있는 명령어를 사용하여 삭제했습니다.
하지만 파일이 삭제된 동안 로컬 git 디렉토리가 남아 있어서, 저는 다음으로 가야만 했습니다..git
한 후 합니다..git/modules/SUBMODULE-PATH
마침내 이 오류를 해결하고 얻은.git submodule add
일하기 위해.
그.git
폴더가 숨겨졌습니다.Windows에서 파일 탐색기의 보기에서 "숨겨진 항목"을 사용하도록 설정한 다음 루트 폴더에서 액세스할 수 있습니다.
언급URL : https://stackoverflow.com/questions/20929336/git-submodule-add-a-git-directory-is-found-locally-issue
'programing' 카테고리의 다른 글
어레이를 반복하는 대신 정의된 횟수만큼 루프하는 방법은 무엇입니까? (0) | 2023.05.26 |
---|---|
WPF 흐릿한 글꼴 문제 - 해결 방법 (0) | 2023.05.26 |
데이터 테이블에 대한 LINQ 쿼리 (0) | 2023.05.26 |
Xcode 4의 저작권 템플릿에서 회사 이름을 변경하려면 어떻게 해야 합니까? (0) | 2023.05.26 |
Xcode 편집기에서 라인 번호는 어디서 찾을 수 있습니까? (0) | 2023.05.26 |