Git: fatal: Pathspec이 하위 모듈에 있습니다.
트래비스를 데려오려고 합니다이 가이드에 따라 Hakyl 정적 사이트를 자동으로 배포하는 CI.
제 레포 설정 방법은 다음과 같습니다.저는 제 하킬과 마크다운 파일이 들어 있는 소스 브랜치를 가지고 있습니다.html을 에 빌드합니다._site하위 모듈로 설정된 디렉토리는 내게 연결되어 있습니다.master분점.
저는 문제없이 사이트를 구축합니다.cd_site 디렉토리로 이동합니다.하지만, 내가 하려고 할 때.git add ./*새로 생성된 HTML 파일에서 다음 오류가 발생합니다.
fatal: Pathspec './about.html' is in submodule '_site'
내가 노력할때git add --all다음 오류가 발생했습니다.
git: pathspec.c:317: prefix_pathspec: Assertion `item->nowildcard_len <= item->len && item->prefix <= item->len' failed.
/home/travis/build.sh: line 245: 1566 Aborted git add --all
무엇이 원인이며, 어떻게 하면 이것을 피할 수 있습니까?
여기에서 리포지토리를 볼 수 있습니다.
git에서 디렉터리를 제거하고 다시 추가하는 것이 나에게 효과가 있었습니다.
git rm --cached directory
git add directory
이것은 의도적으로 제거한 경우에 작동합니다..git당신이 추가하기를 원했기 때문입니다.directory당신의 메인 깃 프로젝트로.제 경우에는, 확장을 복제하고 실행했습니다.git add .별 생각 없이Git는 서브모듈을 만들기로 결정했지만, 저는 그것을 좋아하지 않았습니다.그래서 제가 제거했습니다.directory/.git우연히 마주쳤습니다.Git: fatal: Pathspec is in submodule서브모듈을 제거하는 방법을 찾을 수 없었습니다.위의 두 라인으로 고정됩니다.
나는 서브디렉토리가 git 서브모듈이 되는 것을 멈추기를 원했습니다.이것은 저에게 효과가 있었습니다.
$ mv subdir subdir2
$ git rm --cached subdir
$ mv subdir2 subdir
보아하니git addcontext는 경고를 트리거하는 상위 repo("parent"는 하위 모듈을 포함하는 repo를 의미합니다)입니다.
다음을 사용하여 컨텍스트를 변경해 보십시오.
cd _site
git --git-dir=.git --work-tree=. add .
git --git-dir=.git --work-tree=. commit -m "new files"
이것이 효과가 있다면, 당신은 여전히 부모 레포로 돌아가야 할 것이라는 것을 잊지 마세요, 그리고.git add _site서브 레포에 변경 사항이 있을 것이기 때문입니다.
그리고 둘 다 눌러야 합니다.
2017년 1월 업데이트(2년 이상 경과)
Git 2.12를 사용하면 이를 확인할 수 없습니다.prefix_pathspec: Assertion더이상.
스테판 벨러()stefanbeller의 커밋 2d81c48(2017년 1월 9일)을 참조하십시오.
도움을 받은 사람: 제프 peff킹()과 주니오 C 하마노().gitster
(주니오 C 하마노에 의해 합병 -- -- 커밋 00880a1, 2017년 1월 18일)
pathspec서브모듈 관련 보다 나은 메시지 제공pathspec오류실행 중"
git add a/b"일 때"a는 하위 모듈에서 올바르게 오류가 발생했지만 의미 있는 오류 메시지는 표시되지 않습니다.
초기화되지 않은 하위 모듈에서 작동하는 것처럼 들립니다(기본적으로 누락됨)..git디렉터리)를 먼저 초기화하고 업데이트해야 합니다.
git submodule init
git submodule update
그렇지 않으면 이 하위 모듈이 더 이상 필요하지 않으면 다음 방법으로 제거합니다.
git submodule deinit _site
또는:
git rm -f --cached _site
다시 추가합니다.
git add _site
미결 상태인 하위 을 확인 방법은 다음과 같습니다.git submodule status.
참고 항목:gitadd.에서 'Assertion failed'로 git 오류가 발생하는 이유는 무엇입니까?
제 문제는 제가 실수로 삭제한 것 같습니다..git하위 모듈의 폴더입니다.
프로젝트 내에 두 개 이상의 하위 모듈 디렉터리가 있더라도 이 문제를 100% 해결할 수 있습니다.
> git submodule foreach --recursive deinit -f --all -- <relative path>
> git add --all -f
언급URL : https://stackoverflow.com/questions/24472596/git-fatal-pathspec-is-in-submodule
'programing' 카테고리의 다른 글
| 공통 테이블 식, 세미콜론이 필요한 이유는 무엇입니까? (0) | 2023.06.29 |
|---|---|
| 다른 컨테이너의 도커 몽고 이미지 '연결 거부됨' (0) | 2023.06.29 |
| 빈 UI 텍스트 필드에서 백스페이스 검색 (0) | 2023.06.29 |
| WordPress - wp.media를 사용하여 메타박스에 갤러리 오버레이 추가 (0) | 2023.06.29 |
| SQL Server에서 varchar를 datetime으로 변환 (0) | 2023.06.29 |