분기 또는 태그가 아닌 커밋하는 Git 레코드 (SHA-1 해시로 표시된 하나의 커밋)는 각 하위 모듈에 대해 체크 아웃해야하기 때문입니다. 하위 모듈 디렉토리에서 무언가를 변경하면, Git은이를 감지하고 최상위 레포지토리에서 해당 변경 사항을 커밋하도록 촉구합니다.
git diff
최상위 레벨 저장소에서 실행 하여 실제로 Git이 생각한 변경 사항을 표시하십시오. 하위 모듈에서 이미 커밋을 한 경우 (서브 모듈에서 "깨끗한") 하위 모듈의 해시 변경을보고합니다.
$ git diff
diff --git a/src/repo b/src/repo
index b0c86e2..a893d84 160000
--- a/src/repo
+++ b/src/repo
@@ -1 +1 @@
-Subproject commit b0c86e28675c9591df51eedc928f991ca42f5fea
+Subproject commit a893d84d323cf411eadf19569d90779610b10280
그렇지 않으면 -dirty
최상위 저장소에서 스테이징 또는 커밋 할 수없는 해시 변경이 표시 됩니다. git status
또한 서브 모듈이 추적되지 않거나 수정 된 컨텐츠를 가지고 있다고 주장합니다.
$ git diff
diff --git a/src/repo b/src/repo
--- a/src/repo
+++ b/src/repo
@@ -1 +1 @@
-Subproject commit b0c86e28675c9591df51eedc928f991ca42f5fea
+Subproject commit b0c86e28675c9591df51eedc928f991ca42f5fea-dirty
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
(commit or discard the untracked or modified content in submodules)
modified: src/repo (untracked content)
no changes added to commit (use "git add" and/or "git commit -a")
서브 모듈에 대해 어떤 커밋 레코드를 체크 아웃해야하는지 업데이트하려면 서브 모듈의 변경 사항을 커밋하는 것 외에도 서브 모듈을 커밋해야합니다.
git add src/repo
wiki
디렉토리 위키 에서 하위 모듈로를 추가했습니다 . 메인 / 코드 리포지토리에 변경 내용wiki
(예 : wiki 디렉토리)을 반영 하고 싶지 않습니다 . 기본 리포지토리에.gitmodules
경로 를 추가해야합니까.gitignore
? 어떻게해야합니까?