J'ai fait git commit -m "message"
ça comme ça:
> git commit -m "save arezzo files"
# 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: arezzo.txt
# modified: arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")
Mais après, quand je le fais, git status
il montre les mêmes fichiers modifiés:
> 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: arezzo.txt
# modified: arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")
Qu'est-ce que je fais mal?
git
version-control
git-commit
arezzo
la source
la source
git commit -am "save arezzo files"
pour ajouter automatiquement toutes les modifications (wrt .gitignore). Vous voudrez peut-être ajouter uniquement des fichiers / répertoires spécifiques:git add file.src
Réponses:
Comme le dit le message:
Git a une "zone de transit" où les fichiers doivent être ajoutés avant d'être validés, vous pouvez en lire l'explication ici .
Pour votre exemple spécifique, vous pouvez utiliser:
(notez le supplément
a
dans les drapeaux, peut également s'écriregit commit -a -m "message"
- les deux font la même chose)Alternativement, si vous voulez être plus sélectif sur ce que vous ajoutez au commit, vous utilisez la commande git add pour ajouter les fichiers appropriés à la zone de transit , et git status pour prévisualiser ce qui est sur le point d'être ajouté (en vous rappelant de faire attention à la formulation utilisée).
Vous pouvez également trouver de la documentation générale et des tutoriels sur l'utilisation de git sur la page de documentation de git qui donnera plus de détails sur le concept de transfert / ajout de fichiers.
Une autre chose à savoir est la mise en scène interactive - cela vous permet d'ajouter des parties d'un fichier à la zone de mise en attente, donc si vous avez fait trois changements de code distincts (pour des fonctionnalités liées mais différentes), vous pouvez utiliser le mode interactif pour diviser le changements et ajouter / valider chaque partie à son tour. Avoir des commits spécifiques plus petits comme celui-ci peut être utile.
la source
Vous n'avez pas ajouté les modifications. Soit les ajouter spécifiquement via
ou ajouter toutes les modifications (à partir du chemin racine du projet)
ou utilisez le raccourci
-a
lors de la validation:la source
Tu devrais faire:
la source
J'ai copié un petit sous-projet que j'avais sous contrôle de source Git dans un autre projet et j'ai oublié de supprimer le dossier .git. Lorsque je suis allé valider, j'ai reçu le même message que ci-dessus et je n'ai pas pu le supprimer avant d'avoir supprimé le
.git
dossier.C'est un peu idiot, mais cela vaut la peine de vérifier que vous n'avez pas de dossier .git sous le dossier qui ne s'engage pas.
la source
Vous auriez pu faire:
Pour vérifier quels fichiers vous avez modifiés et vont être ajoutés (essai à sec: option -n), puis
Pour ajouter des fichiers juste modifiés
la source
Je trouve que ce problème apparaît lorsque j'ai fait un
git add .
dans un sous - répertoire ci-dessous où réside mon.gitignore
fichier (le répertoire personnel de mon référentiel, pour ainsi dire). Essayez de changer les répertoires en votre répertoire supérieur et exécutezgit add .
suivi degit commit -m "my commit message"
.la source
Peut-être une chose évidente, mais ...
Si vous avez un problème avec l'index, utilisez git-gui . Vous obtenez un très bon aperçu du fonctionnement réel de l'index (zone de transit).
Une autre source d'information qui m'a aidé à comprendre l'index était Scott Chacons "Getting Git" page 259 et suivantes.
J'ai commencé à utiliser la ligne de commande car la plupart de la documentation montrait seulement que ...
Je pense que git-gui et gitk me font travailler plus vite, et je me suis débarrassé des mauvaises habitudes comme "git pull" par exemple ... Maintenant, je vais toujours chercher en premier ... Voyez quels sont vraiment les nouveaux changements avant de fusionner.
la source
La raison pour laquelle cela se produit est que vous avez un dossier qui est déjà suivi par Git dans un autre dossier qui est également suivi par Git. Par exemple, j'avais un projet et j'y ai ajouté un sous-dossier. Les deux étaient suivis par Git avant que je ne les mette l'un dans l'autre. Afin d'arrêter le suivi de celui à l'intérieur, recherchez-le et supprimez le fichier Git avec:
Dans mon cas, j'avais une application WordPress et le dossier que j'ai ajouté à l'intérieur était un thème. J'ai donc dû aller à la racine du thème et supprimer le fichier Git, afin que l'ensemble du projet soit désormais suivi par le parent, l'application WordPress.
la source
si vous avez plus de fichiers dans mon cas, j'ai 7000 fichiers image lorsque j'essaie de les ajouter à partir du dossier de route du projet, il ne les a pas ajoutés , mais quand je vais dans le dossier image, tout va bien. Parcourez le dossier cible et commandez comme abows
la source
J'ai eu un problème où je faisais
commit --amend
même après avoir émis ungit add .
et cela ne fonctionnait toujours pas. Il s'avère que j'ai fait quelques.vimrc
personnalisations et que mon éditeur ne fonctionnait pas correctement. La correction de ces erreurs afin quevim
renvoie le code correct a résolu le problème.la source
J'ai eu un problème très similaire avec le même message d'erreur. "Les changements ne sont pas par étapes pour la validation", mais quand je fais un diff, cela montre des différences. J'ai finalement compris qu'il y a quelque temps, j'avais changé un cas de répertoires. ex. "PostgeSQL" à "postgresql". Comme je m'en souviens maintenant, parfois git laisse un fichier ou deux derrière dans l'ancien répertoire de cas. Ensuite, vous allez valider une nouvelle version dans le nouveau boîtier.
Git ne sait donc pas sur qui s'appuyer. Donc, pour le résoudre, j'ai dû aller sur le site Web du github. Ensuite, vous pouvez afficher les deux cas. Et vous devez supprimer tous les fichiers dans le répertoire casé incorrect. Assurez-vous d'avoir la bonne version enregistrée ou dans le bon répertoire de casse.
Une fois que vous avez supprimé tous les fichiers de l'ancien répertoire de cas, ce répertoire entier disparaîtra. Faites ensuite un commit.
À ce stade, vous devriez pouvoir effectuer un Pull sur votre ordinateur local et ne plus voir les conflits. Pouvant ainsi s'engager à nouveau. :)
la source
si vous avez un sous-dossier, qui a été cloné à partir d'un autre git-Repository, vous devez d'abord supprimer le fichier $ .git $ du child-Repository:
rm -rf .git
après cela, vous pouvez changer pour le dossier parent et l'utilisergit add -A
.la source