web-dev-qa-db-fra.com

Git n'ajoutera pas de fichier modifié

Aucune idée pourquoi cela se passe:

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:   file (modified content)

no changes added to commit (use "git add" and/or "git commit -a")
starkers@ubuntu:~/Documents/currentWork/protection_demo$ git add --all
starkers@ubuntu:~/Documents/currentWork/protection_demo$ 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:   file (modified content)

Peu importe ce que je fais, git commit -am, git commit -a, le fichier ne sera pas ajouté à la validation. De l'aide?

13
Starkers

Je pense que le commentaire de Jubobs est peut-être correct. Votre "fichier" est-il un sous-module?

Cette ligne (valide ou supprime le contenu non suivi ou modifié dans les sous-modules) ne doit pas apparaître pour les fichiers normaux.

Voici ce que je tire du statut de git:

$ 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)

        modified:   README.txt

no changes added to commit (use "git add" and/or "git commit -a")

Vous ne verrez pas (valider ou supprimer le contenu non suivi ou modifié dans les sous-modules) et (contenu modifié) après mon fichier README.txt

Donc, vous devrez peut-être faire ce que git vous recommande, travailler sur le contenu des sous-modules.

Edit: Auparavant, je pensais que le "git add." pourrait résoudre le problème, mais maintenant, je pense que cela ne pourrait pas.

17
palazzo train

Vous pouvez ajouter des fichiers de trois manières

  • Si vous souhaitez ajouter un seul fichier, utilisez git add filenamewithpath
  • Si vous souhaitez ajouter plusieurs fichiers, utilisez git add .
  • à la fois, vous pouvez ajouter tous les fichiers et écrire le message de validation via cette commande

    git commit -a -m 'your commit message'

4
Anjaneyulu Battula

J'ai eu le même problème. Mon "aha" personnel était que j'avais précédemment ajouté un fichier de référentiel de suivi .git à un sous-dossier et qu'il était donc considéré comme un sous-module. Après avoir supprimé le fichier .git du sous-dossier, il a heureusement rejoint le reste de mes dossiers au sein d’un seul fichier .git dans le dossier racine. Je ne connaissais même pas les sous-modules, alors cela aidera peut-être aussi quelqu'un.

3
Patrick Patterson

eu le même problème, aucune idée pourquoi, mais un fichier .h ne commettrait pas. 

Donc, je l'ai renommé, cet original supprimé et en crée un nouveau pour un git. Ensuite, j'ai commis ces changements. Git était heureux.

Ensuite, je viens de le renommer. Encore une fois git était heureux de s'engager. 

Je ne peux pas expliquer pourquoi c'est arrivé, mais au moins, ça a été corrigé.

3
GAllan

Je ne sais pas si cela est pertinent ou non, mais le problème était le même lors du basculement entre Linux et Windows. J'avais 2 fichiers un WEB.config et un autre web.config puisque Windows n'est pas sensible à la casse, il semble s'être confus. J'ai renommé le fichier commité, renommé en arrière et réitéré semble avoir des travaux.

2
Apathy
git reset .

Cela a fait le travail pour moi. unstaging tous les fichiers prêts à valider le fichier (contenu modifié) inclus 

0
james kariuki

C’était arrivé hier mec, dans mon cas, la raison était que j’essayais d’appeler git depuis un sous-répertoire de mon projet. Ensuite, j'ai utilisé le " git add --all " et le problème a été résolu. De plus, j’étais allé dans le bon répertoire, il aurait également résolu le problème.

Mais ce que je ne comprends pas, c’est: pourquoi dans le monde le statut de git et la commande git --all fonctionnaient-ils depuis un sous-répertoire? .-.

J'espère que ça aide =)

0
Leonardo Da Vinci

Une autre option est que le même fichier est caché et est en conflit avec la copie actuelle.

Si c'est le cas, git stash drop - supprimera le stash (avec le fichier en conflit) et vous permettra d'ajouter le fichier modifié à l'index.

0
Lior Bar-On

Cette chose similaire m'est arrivé. Peu importe ce que j'ai fait, le fichier semblait modifié. En regardant le diff, il a été changé comme je l'avais fait dans un commit précédent. Le fichier semblait toujours modifié, même après la première validation. Finalement j'ai enlevé le fichier. Commité la suppression, qui est apparu comme si j'avais supprimé deux fichiers. Puis ajouté le fichier à nouveau. Chose assez étrange que je n'ai jamais vue auparavant.

0
antonkronaj

J'ai eu la même erreur:

fatal: Cannot update paths and switch to branch 'develop' at the same time.

Puis avec git status:

$ git status
warning: LF will be replaced by CRLF in .gitmodules.
The file will have its original line endings in your working directory.
On branch develop
Your branch is up-to-date with 'Origin/develop'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   .gitmodules
        new file:   submodule_dir

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:   submodule_dir (modified content)

et git diff a montré:

$ git diff
diff --git a/somedir b/somedir
--- a/somedir
+++ b/somedir
@@ -1 +1 @@
-Subproject commit some-commit-hash
+Subproject commit some-commit-hash-dirty

Le problème était que j'essayais d'ajouter une branche qui n'existait pas encore dans le référentiel de sous-modules.

0
modle13