L'objectif est de valider une branche git. La sortie de "git status" pour la branche est:
On branch zeromq_new
Your branch is up to date with 'Origin/zeromq'.
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: log4cplus (modified content, untracked content)
modified: ../lib/notification/cppzmq (modified content)
La structure du répertoire ressemble à ceci:
HySecureGateway
├──fes
│ └──log4cplus
│ ├──.git
│ ├──.gitattributes
│ ├──.gitignore
│ ├──.gitmodules
│ ├──catch
│ │ ├──.git
│ │ ├──.gitattributes
│ │ ├──.github
│ │ ├──.gitignore
│ │ └──.github
│ │ ├──issue_template.md
│ │ └──pull_request_template.md
│ └──threadpool
│ └──.github
└──lib
└──notification
└──cppzmq
├──.git
└──.gitignore
J'ai lu une réponse à une question similaire ici:
Comment suivre le contenu non suivi? ,
et ne pouvait pas le comprendre complètement. Le logc4plus/.gitmodules contient également ceci:
[submodule "threadpool"]
path = threadpool
url = https://github.com/log4cplus/ThreadPool.git
[submodule "catch"]
path = catch
url = https://github.com/philsquared/Catch.git
Ce que j'ai fait, c'est de courir:
git rm -rf --cached myuntrackedfolder
Cela dit à git de l'oublier (car il était suivi officiellement).
Ensuite, j'ai utilisé:
git add myuntrackedfolder
l'ajouter et j'étais prêt à partir.
La solution consiste à supprimer .git/des répertoires avec le libellé "contenu modifié, contenu non suivi", à supprimer le fichier --cached de ces répertoires, puis à exécuter git add
sur ces répertoires.
Solution étape par étape:
git rm -rf --cached log4cplus/ && git rm -rf --cached ../lib/notifications/cppzmq
Codage heureux.
Les sous-modules sont indépendants du référentiel dans lequel ils se trouvent. Ce que git status
Vous dit que ces sous-modules sont modifiés d'une manière ou d'une autre depuis leur extraction. Vous ne saurez ce que c'est que si vous faites un git status
Dans chaque sous-module qui contient ce message.
Si vous allez dans chacun des sous-modules et faites git status
Dans cppzmq et log4cplus, vous pouvez alors faire un git status
Dans chacun pour comprendre ce qui est différent. À ce stade, vous pouvez valider les modifications si nécessaire. Poussez-les, puis mettez à jour où pointent les submoudles.