Que signifie «Modifications non planifiées pour la validation»


239

Je pensais que si vous voulez suivre les fichiers, vous devriez git add [files you want to track]

Je ne sais pas pourquoi j'ai reçu les messages Changes not staged for commit .

Si ces fichiers n'étaient pas mis en scène, ne devrait pas gitme montrer que ces fichiers étaient Untrackedcomme ça

entrez la description de l'image ici

Tout ce que j'ai fait, c'est créer une nouvelle fonctionnalité à partir de la developbranche et j'ai travaillé dans la feature/change_excel_formatbranche

Je pensais que ces fichiers devraient être en stagedstatut,

Mais git statusm'a ditChanges not staged for commit

entrez la description de l'image ici

Pour mémoire, je sais seulement il y a 3 étapes git untracked, staged, committed peut - il me dire quelle était l'étape pourChanges not staged for commit entrez la description de l'image ici

Donc, si j'ai modifié le fichier a (déjà dans le repo)

et tapez git st, le git me diraChanges not staged for commit

si je git apuis le fichier asera enstaged status

si je modifie le file amaintenant, il y aura deux statuts defile a dans git, non?

Je dois donc décider si faire le staged acommit ou faire le not stage aêtre mis en scène, puis le précédent mis file aen scène sera rejeté?

entrez la description de l'image ici


3
si vous obtenez ce message et voulez que ce fichier (a) soit validé, assurez-vous que vous êtes dans le bon chemin de répertoire (chemin racine du projet pour tout ajouter) pendant que vous ajoutez
Sadee

Réponses:


325

lorsque vous modifiez un fichier qui est déjà dans le référentiel, vous devez git addle refaire si vous voulez qu'il soit mis en scène.

Cela vous permet de valider uniquement un sous-ensemble des modifications que vous avez apportées depuis la dernière validation. Par exemple, supposons que vous ayez un fichier a, un fichier bet un fichier c. Vous modifiez un fichier aet un fichier, bmais les changements sont de nature très différente et vous ne voulez pas qu'ils soient tous dans un seul commit. Vous émettez

git add a
git commit a -m "bugfix, in a"
git add b
git commit b -m "new feature, in b"

En remarque, si vous voulez tout valider, vous pouvez simplement taper

git commit -a

J'espère que ça aide.


1
Donc, si ces fichiers sont déjà en dépôt. et je les ai changé, je peux aussi git commit THEMdirectement sans les ajouter, non?
newBike

1
bien sûr. Et dans ce cas, seuls les fichiers répertoriés seraient validés, quelle que soit la présence de modifications par étapes dans différents fichiers.
Stefano Falasca

1
J'ai le même problème, mais mon problème concernait également la cause du sous-module des fichiers non suivis. Donc, dans mon sous-répertoire, j'ajoute également toutes les modifications avec git et le problème a disparu.
elia

1
J'ai déjà fait git clean -fdet j'obtiens toujours ceci. Je veux me débarrasser de tous les changements. Que dois-je faire d'autre?
Honey

3
git commit -ane commet pas tout, seulement les fichiers mis à jour, pas les nouveaux ...
Martin

62

Vous devez utiliser git add pour les mettre en scène, sinon ils ne seront pas validés. Considérez qu'il informe git quelles sont les modifications que vous souhaitez valider.

git add -u :/ajoute tous les changements de fichiers modifiés à la scène git add * :/ajoute les fichiers modifiés et tous les nouveaux fichiers (qui ne sont pas modifiés) à la scène


2
Cette réponse est claire et concise par rapport à celle ci-dessus, c'est pourquoi je l'aime. ;)
oaxacamatt

13

C'est une autre façon pour Git de vous dire:

Hé, je vois que vous avez fait quelques changements, mais gardez à l'esprit que lorsque vous écrivez des pages dans mon historique, ces changements ne seront pas dans ces pages.

Les modifications apportées aux fichiers ne sont pas mises en scène si vous ne git addles expliquez pas explicitement (et cela a du sens).

Ainsi, lorsque vous git commit, ces modifications ne seront pas ajoutées car elles ne sont pas mises en scène. Si vous voulez les engager, vous devez d'abord les mettre en scène (ie. git add).


2
Mais je n'ai pas changé le fichier auquel il fait référence
Eoin

1
Je ne comprends pas exactement comment ce comportement a du sens. Si j'ai déjà dit à Git de suivre un fichier en le faisant add .lors de la configuration du repostiry, et qu'il peut détecter que j'y ai apporté des modifications, pourquoi dois-je ajouter explicitement des fichiers chaque fois que je valide? Juste pour apporter une modification à un fichier, je dois add, commit et push . La démarcation entre commitet push a du sens pour moi, la démarcation entre addet me commitsemble ridiculement redondante.
Prometheus

1
@Hashim Je suis d'accord, je ne comprends vraiment pas la logique.
Herman Toothrot

6

Suivez les étapes ci-dessous:

1- git stash
2- git add.
3- git commit -m "votre message de commit"


5
git stash a supprimé toutes mes modifications, il y avait 10 heures de travail :(
viniciussvl

13
si vous avez utilisé "git stash", il a mis ces modifications dans un "emplacement temporaire" pour les récupérer, tapez simplement "git stash pop" pour obtenir votre modification à partir de "l'emplacement temporaire"
Cyrus Zei

12
N'UTILISEZ PAS git stash tant que vous n'avez pas lu les commentaires de @viniciussvl et Cyrus
minable le

1
Pourquoi devrais-je même utiliser git stash dans ce cas?
Tobias Kaufmann

4

Supposons que vous ayez enregistré un nouveau fichier modifié. (navbar.component.html par exemple)

Courir:

ng status
modified:   src/app/components/shared/navbar/navbar.component.html

Si vous souhaitez télécharger ces modifications pour ce fichier, vous devez exécuter:

git add src/app/components/shared/navbar/navbar.component.html

Puis:

git commit src/app/components/shared/navbar/navbar.component.html -m "new navbar changes and fixes"

Puis:

git push origin [your branch name, usually "master"]

-------------------------------------------------- -------------

Ou si vous souhaitez télécharger toutes vos modifications (plusieurs / tous les fichiers):

git commit -a

Et eux, cela apparaîtra "Veuillez entrer le message de validation pour vos modifications."

  • Vous verrez ce message si vous git commit sans un message (-m)
  • Vous pouvez en sortir en deux étapes:
  • 1.a. Tapez un message sur plusieurs lignes pour aller de l'avant avec la validation.
  • 1.b. Laissez vide pour abandonner la validation.
    1. Appuyez sur "esc" puis tapez ": wq" et appuyez sur Entrée pour enregistrer votre choix. Alto!

Puis:

git push

Et Viola!


2
Idem que j'ai dit plus haut: git commit -ane télécharge pas tous les changements, il n'inclut pas les nouveaux fichiers. Il n'engagera que les mises à jour des fichiers existants.
Martin

3

Essayez de suivre int git bash

1.git add -u :/

2.git commit -m "your commit message"

  1. git push -u origin master

Remarque: si vous n'avez pas initialisé votre repo.

Tout d'abord

git init 

et suivez les étapes mentionnées ci-dessus dans l'ordre. Cela a fonctionné pour moi


Ce problème a fonctionné pour moi, sur un conflit git où je n'ai pas pu supprimer un fichier de mon référentiel local et valider du référentiel local vers la branche maître distante.
Siwoku Adeola

1

cela signifie qu'ils ne sont pas ajoutés pour être validés, vous devrez faire git add scripts / excel_parser.py et les goûts pour les mettre en scène .. une fois qu'ils sont mis en scène lorsque vous faites le statut git, ils seront mis en scène et git commit les engagera

vous pouvez git commit -a -m "all checkin" qui va automatiquement mettre en scène et valider tous les fichiers de l'arborescence


1

Vous pouvez voir cette erreur lorsque vous avez ajouté un nouveau fichier à votre code et que vous essayez maintenant de valider le code sans le mettre en scène (en l'ajoutant).

Pour surmonter cela, vous pouvez d'abord ajouter le fichier en utilisant git add ( git add your_file_name.py) puis en validant les modifications ( git commit -m "Rename Files" -m "Sample script to rename files as you like")


1

J'ai lu toutes les réponses ci-dessus et essayé dans le terminal en suivant les étapes qui fonctionnent bien pour mettre à jour les nouveaux fichiers et les modifier sur le maître.

1) ajouter git. 2) git commit -m "votre message" 3) git push origin master

J'espère que ceci vous aide.


1

Vous pouvez être dans le mauvais répertoire lors de l'ajout de git. :-)


-7

Retirer dir/.../.git

travaille pour moi.


votre réponse nécessite des informations générales ou un aperçu de pourquoi ou comment cela a fonctionné pour vous.
Joshua K

En l'état, la réponse n'appuie pas la question. Veuillez envisager de modifier ou d'ajouter des informations supplémentaires.
Francisco Maria Calisto
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.