web-dev-qa-db-fra.com

Comment réparer "contenu modifié, contenu non suivi" dans git?

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
10
Ayush

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.

23
xplorer1

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:

  1. Supprimez .git/de log4cplus et ../lib/notification/cppzmq.
  2. Depuis le répertoire parent à partir duquel vous avez initialisé votre référentiel git, exécutez la commande: git rm -rf --cached log4cplus/ && git rm -rf --cached ../lib/notifications/cppzmq
  3. Ajoutez et validez à nouveau les répertoires dans votre branche.
  4. Poussez vers votre succursale.

Codage heureux.

4
QuantumQuan

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.

0
Dom