programing

하위 모듈이 아닌 경로에 대한 하위 모듈 매핑을 .git 모듈에서 찾을 수 없습니다.

muds 2023. 5. 6. 16:48
반응형

하위 모듈이 아닌 경로에 대한 하위 모듈 매핑을 .git 모듈에서 찾을 수 없습니다.

는 저는서듈이있프있가다에 .lib/three20

나의.gitmodule파일은 다음과 같습니다.

[submodule "lib/three20"]
    path = lib/three20
    url = git://github.com/facebook/three20.git

저는 이것을 과거에 오류 없이 복제했습니다, (git submodule init에 다에가 .git submodule update그것은 그리고 그것은 한동안 효과가 있었습니다.

이것을 새 컴퓨터에 복제하려고 했는데 이제 이 오류가 발생했습니다.git submodule init:

No submodule mapping found in .gitmodules for path 'Classes/Support/Three20'

이 경로는 Xcode의 빈 폴더일 뿐이며 다른 디렉터리의 프로젝트를 저장하는 데 사용됩니다.그것은 의 일부가 아닙니다..gitmodules파일입니다. 그래서 이 경로가 어디서 왔는지 알 수 없습니다.

아이디어 있어요?

다음과 같은 경우 'OtherLibrary/MKStore' 경로에 대한 .git 모듈에서 하위 모듈 매핑을 찾을 수 없습니다.

$ git submodule update --init

저는 오류가 발생하는 이유를 몰랐습니다.1분을 보낸 후 스택 오버플로에서 답을 찾았습니다.

$ git rm --cached OtherLibrary/MKStore

그런 다음 하위 모듈을 다시 업데이트합니다.잘 작동하고 있습니다.

http://en.saturngod.net/no-submodule-mapping-found-in-gitmodules

Rajibchowdhury답변(업데이트됨)에 따라 하위 모듈(특수 모드가 있는 '폴더')을 나타내는 인덱스의 특수 항목을 제거하는 것이 좋습니다.160000).

해당 특수 입력 경로가 참조되지 않는 경우.gitmodules ')Classes/Support/Three20원래 질문에서), 그런 다음 "No submodule mapping found for path" 오류 메시지를 방지하기 위해 제거해야 합니다.

하위 모듈을 참조하는 인덱스의 모든 항목을 확인할 수 있습니다.

git ls-files --stage | grep 160000

이전 답변(2010년 11월)

초기 서브모듈을 올바르게 선언하지 않았을 수 있습니다(즉, 테일이 없는 경우)./마지막에, 내 예전 대답에서 설명한 것처럼, 비록 당신의.gitmodules에 정상으로 보이는 경로가 있습니다.

스레드는 다음을 언급합니다.

새 클론에서 'git submodule init'를 실행할 때 동일한 오류가 발생합니까?
만약 그렇다면, 당신은 뭔가 잘못된 것을 가지고 있습니다.

합니다..gitmodules 듈에 모든참에 있는 하위 에 대한 모든 ..git/config하게 해야 .Pikimal에 dir 없습다니가 ..git그 안의 디르.
문제가 해결되면 체크인하고 크루즈 작업 복사본에서 동일한 작업을 수행합니다.

의 메인인 , 을제지마세하요의명당신▁your마세요▁▁deletet',▁main▁don,지를 삭제하지 마세요..gitmodules파일, 하지만 다른 여분을 돌보세요..gitmodules파일을 저장할 수 있습니다.


여전히 "잘못된 하위 모듈 초기화"라는 주제에서 Jefromi는 실제로 깃링크인 하위 모듈을 언급합니다.

추적되지 않은 콘텐츠를 추적하는 방법을 참조하십시오.이러한 디렉터리를 실제 하위 모듈로 변환하기 위해: ipatch가 코멘트한 대로, ipatch의 노트에 있는 세부 사항:

git 하위 모듈 작업 중 아래 오류가 발생할 경우

mr-fancy-42-repo already exists in the index
  1. 하위 모듈 폴더/디렉토리 제거
  2. 폴더/디렉토리에 대한 Git 캐시 제거
  3. 그런 다음 하위 모듈을 다시 초기화합니다.
rm -Rf /path/to/mr-fancy-42-repo
git rm -R /path/to/mr-fancy-42-repo
git submodule add [mr-fancy-42-submodule-repo] /path/to/initialize/submodule/repo

소스 트리를 사용하여 작업을 수행하면 이 메시지가 표시됩니다.
내가 발견한 메시지:

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree submodule update --init --recursive
No submodule mapping found in .gitmodules for path 'SampleProject/SampleProject'
Completed with errors, see above

제 시나리오는 contains .git 폴더의 프로젝트 디렉토리를 잘못 적용한 것입니다.
소스 트리는 이 폴더를 git 하위 모듈로 간주했지만 실제로는 그렇지 않았습니다.

내 해결책은 명령줄을 사용하여 제거하는 것입니다.

$ git rm -r SampleProject --cached
$ git commit -m "clean up folders"

쓰레기통을 치우고 깨끗하게 유지하세요.

저는 이 문제를 해결했습니다.처음에는 다음과 같이 시도했습니다.

git submodule add --branch master [URL] [PATH_TO_SUBMODULE]

마스터 분기를 복제하려면 --branch 옵션의 사양을 사용하면 안 됩니다.다음 오류가 발생합니다.

fatal: Cannot force update the current branch.
Unable to checkout submodule '[PATH_TO_SUBMODULE]'

당신이 시도할 때마다

git submodule sync

이 오류가 발생합니다.

No submodule mapping found in .gitmodules for path '[PATH_TO_SUBMODULE]'

그리고 .git 모듈에 필요한 줄은 절대 추가되지 않습니다.

그래서 저에게 해결책은 다음과 같습니다.

git submodule add [URL] [PATH_TO_SUBMODULE]

.gitmodules 파일에서 문자열을 교체했습니다.

"path = thirdsrc\boost" 

와 함께

"path = thirdsrc/boost", 

그리고 그것은 해결되었습니다! - - -

제 레포의 새 체크아웃에서 "git submodule init"을 시도한 후 이 오류가 발생했습니다.처음에 모듈 하위 폴더를 잘못된 대소문자로 지정한 것으로 드러났습니다.저는 Mac에서 대소문자를 구분하는 파일 시스템(hurr)을 사용하고 있기 때문에 실패했습니다.예:

git submodule add git@github.com:user/project.git MyApp/Resources/Project
Cloning into 'MyApp/Resources/Project'

성공하지만 문제는 디스크의 경로가

Myapp/Resources/Project

제가 이해할 수 없는 것은 git가 모듈을 잘못된 폴더로 초기화하고(내 명령에서 잘못된 대소문자를 무시함), 이후 명령에서 (실패함으로써) 올바르게 작동하는 이유입니다.

그저.git rm subdir괜찮습니다. 그러면 인덱스로 하위 디르를 제거할 수 있습니다.

방금 이 문제가 있었습니다.한동안 경로 제거, git 경로 제거, .git 모듈 제거, .git/config에서 항목 제거, 하위 모듈 다시 추가, 변경 사항 적용 및 푸시에 대한 조언을 시도했습니다."git commit -a"를 했을 때 변화가 없어 보여서 혼란스러웠기 때문에 제거만 밀고 다시 편집을 눌러 변화처럼 보이게 했습니다.

잠시 후 저는 모든 것을 제거한 후 "git submodule update --init"을 실행하면 git이 더 이상 참조해서는 안 되는 특정 이름에 대한 메시지가 있다는 것을 알게 되었습니다. 즉, 서브모듈이 체크아웃하는 경로 이름이 아니라 링크하는 저장소의 이름입니다.Grepping은 이 참조가 .git/index에 있음을 밝혔습니다.그래서 "gitrm --cached repo-name"을 실행하고 모듈을 다시 추가했습니다.이번에 커밋했을 때 커밋 메시지에 이 예기치 않은 개체를 삭제한다는 변경 내용이 포함되어 있었습니다.그 후에는 잘 작동합니다.

무슨 일이 일어났는지 확실하지 않습니다. 누군가 git submodule 명령을 잘못 사용한 것 같습니다. 아마도 논쟁을 뒤집을 수도 있습니다.내가 될 수도 있었는데 심지어...이것이 누군가에게 도움이 되기를 바랍니다!

은 폴더매다확수있다니습에서 수 있습니다..git/modulesfolder 폴각더 (각이있음각있)음()가 )config▁to▁its▁reference를 참조하여 파일을 .worktree가 의 하십시오. 의 구성은 다음과 같습니다..gitmodules그리고..git/config.

그렇게.gitmodules올바른 경로:

[submodule "<path>"]
  path = <path>
  url = git@github.com:foo/bar.git

그고리로..git/modules/<path>/config[core]섹션에른올경있습다니가로바로 가는 길을 가지고 .<path> 예: 예: 예: 예를 들어.

[core]
  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
  worktree = ../../../<path>

경우있는가의 오른쪽 .git/modules누락되었습니다, 그러면 당신은 당신의 서브모듈 디르로 가서 시도해야 합니다.git reset HEAD --hard또는git checkout master -f이렇게 해도 문제가 해결되지 않으면 손상된 하위 모듈에 대한 모든 참조를 제거하고 다시 추가한 다음 "Git 하위 모듈 이름 바꾸기"를 참조하십시오.

시나리오: dirA-xx 디렉토리에서 다른 dirB-xx 디렉토리로 하위 모듈 변경

  1. dirA-xx를 dirB-xx로 이동합니다.
  2. dirB-xxx를 사용하도록 .git 모듈의 항목 수정
  3. dirB-xxx를 사용하도록 .git/config의 항목 수정
  4. 올바른 디렉토리를 반영하도록 .git/modules/dirA-xxx/config를 수정합니다.
  5. 올바른 디렉토리를 반영하도록 dirA-xxx/.git를 수정합니다.
  6. 려달을 git submodule status

    파일: dirA-xx의 .git 모듈하위 .이는 dirA-xxx가 존재하지 않지만 git에 의해 추적되기 때문입니다. 방법: Git 인덱트방법:git rm --cached dirA-xxx

    사용해 보십시오.git submodule foreach git pull 실제 연구를 의 단계들은 무언가가. git submodule structure에 대한 것입니다. git submodule structure에 대한 것입니다.그럼에도 불구하고 위의 단계를 거치면 현재 상황은 좋아 보입니다.작업을 수행하기 위한 통찰력이나 적절한 단계가 있으면 여기에서 공유하십시오.:)

다음이 있는 경우:

  • 단순사 서여제을다니거습했듈을 했습니다.rmgit rm;
  • 에서 서브모듈에 대한 참조를 하였습니다..gitmodules;
  • 제니습다에서 참조를 했습니다..git/config;

그리고 아직도 오류가 발생합니다. 제가 해결한 것은 서브모듈이 있던 빈 폴더를 다시 읽는 것이었습니다.다음을 사용하여 이 작업을 수행할 수 있습니다.

mkdir -p path/to/your/submodule
touch path/to/your/submodule/.keep

.keep빈 파일일 뿐입니다. git commit그러면 오류가 사라집니다.

폴더 구조

xyz folder as root directory which contains 2 folder as submodule
  -- product
  -- user

루트 디렉터리에서 다음 명령 실행

git rm --cached product/
git rm --cached user/

제품 디렉토리로 이동하여 실행

 git submodule update --init

사용자 디렉토리로 이동하여 실행

git submodule update --init

루트 디렉토리로 다시 이동합니다. cd .

git add --all

일반적으로 git는 프로젝트의 루트 디렉터리(.git/)에 숨겨진 디렉터리를 만듭니다.

CMS에서 작업할 때 특정 모듈/플러그인에 대한 git 메타데이터가 포함된 .git/디렉토리를 포함하는 모듈/플러그인을 설치할 수 있습니다.

가장 빠른 해결책은 모든 .git 디렉터리를 찾고 루트 git 메타데이터 디렉터리만 유지하는 것입니다.이렇게 하면 Git는 이러한 모듈을 프로젝트 하위 모듈로 간주하지 않습니다.

의 제사보고를 ..gitmodules알고 보니 제가 가져서는 안 되는 대문자가 있었습니다.하세요, 그니까명해심, 그러..gitmodules디렉토리는 대소문자를 구분합니다.

repo 삭제 및 이 명령 실행을 해결했습니다.

git clone --recurse-submodules https://github.com/chaconinc/MainProject

그 이후로는 잘 작동했습니다. 여기 있는 옵션 중 어떤 것도 도움이 되지 않았기 때문입니다.

기능은 다음과 같습니다.

  1. 기본 레포 복제
  2. 복제가 완료된 후 즉시 하위 모듈 초기화

그리고 이것이 마지막입니다.

아래 링크에서 더 많은 정보를 찾을 수 있습니다.

서브모듈

fatal: 하위 모듈 경로 'path/to/submodule'에 대한 URL을 찾을 수 없습니다. 경로 'path/to/submodule'에 대한 하위 모듈 매핑을 .gitmodules에서 찾을 수 없습니다.

이러한 오류는 루트 디렉터리 폴더에서 ./resources/css/style.css로 한 번 "cd"했을 때 발생했습니다.

저는 용한사를 요.git initstyle style.css를 에 내 를 인식하는 것, 내가이추미가후한내인실수식를다합니에서에▁from.git add remote origin <url>.

style.그서여히style.css파gitbash를 했습니다.git remove remote origin.

가 확했을때를 했을 때.git remote원격 링크가 제거되었습니다.

궁적로으를 한 에 후에한.git init원격에 추가한 루트 디렉터리의 경우 리소스/리소스 경로가 위에 나열된 하위 모듈 오류/리소스 오류를 제공하고 있습니다.루트했습니다.git rm --cached resources/css변경 사항을 다시 푸시하고 github 페이지에서 배포를 확인한 후 결과가 어떻게 되는지 보기 위해 CSS 디렉토리를 삭제하고(코드를 삭제하고), 변경 사항을 푸시하고, 그 안에 다른 분기(선택 사항)에 CSS 디렉토리와 styles.dll 파일을 추가했습니다.효과가 있었어요!특히 대규모 프로젝트에서 디렉토리를 삭제하는 것이 항상 이상적이지는 않다는 것을 알지만, 이 문제를 해결하기 위한 한 가지 방법을 더 공유하고 싶을 뿐입니다.

추신: 스택 오버플로가 발생한 지 꽤 오래되어서, 긴 텍스트에 대해 사과드립니다.#대답

제 경우 이 오류는 아마도 서로 다른 하위 모듈 구성을 가진 두 분기의 .git 모듈 간의 잘못된 병합 때문일 것입니다.이 포럼에서 제안을 받은 후 .gitmodules 파일을 수동으로 편집하는 문제를 해결했습니다. 누락된 하위 모듈 항목을 추가하는 것은 매우 쉽습니다.그 후 git submodule update --init --recursive 명령어는 문제없이 작동했습니다.

문제는 중복된 하위 모듈 항목이 (아마 병합에서) .git 모듈에 추가되었다는 것입니다..git 모듈에서 git이 불만을 제기한 경로 git를 검색하여 동일한 두 섹션을 찾았습니다.섹션 중 하나를 삭제한 것으로 문제가 해결되었습니다.

Git 1.7.1은 "하위 모듈 매핑 없음" 오류를 제공했지만 Git 2.13.0은 신경 쓰지 않는 것처럼 보였습니다.

저 같은 경우에는 이사를 갑니다..gitmodules문제를 해결하기 위해 파일을 작성합니다. 30분 정도 걸립니다.

Root
 Dir
 Dir
 Dir
  Dir
   Submodule repo files
   .gitmodules [Wrong place]
Root
 Dir
 Dir
 Dir
  Dir
   Submodule repo files
.gitmodules [Correct]

언급URL : https://stackoverflow.com/questions/4185365/no-submodule-mapping-found-in-gitmodule-for-a-path-thats-not-a-submodule

반응형