114 votes

Git - Impossible d'ajouter des fichiers ?

J'ai des problèmes où je ne peux pas ajouter de fichiers à mon dépôt.

J'utilise GIT sous Windows, dans Aptana Studio pour du développement Ruby.

J'ai réussi à envoyer quelques fichiers sur GitHub, mais après cela, tout a cessé de fonctionner. J'ai par exemple un nouveau sous-dossier dans mon répertoire principal, avec 2 fichiers ruby à l'intérieur. Si j'appelle "git add .", puis "git status", il continue à dire "working directory clean" et n'a rien à commiter.

J'ai essayé "git add folder/myfile.rb" et toujours rien.

Quelqu'un a-t-il une idée de ce que je pourrais essayer ?

175voto

zrisher Points 1514

Je me suis retrouvé dans une situation similaire à celle de l'auteur de l'affiche :

Si j'appelle "git add .", puis "git status" et qu'il continue à dire "working directory clean" et n'a rien à livrer.

Mais j'avais une solution différente de celle présentée ici. Puisque j'y suis arrivé le premier, j'espère faire gagner du temps à d'autres.

D'après les réponses ci-dessus et ce que j'ai vu ailleurs, les solutions habituelles à ce problème sont les suivantes :

  • S'assurer que des modifications ont été enregistrées dans le fichier en question.
  • Assurez-vous que le fichier ne répond pas à vos règles d'exclusion dans la rubrique .gitignore y .git/info/exclude
  • Vérifiez que vous n'essayez pas d'ajouter un dossier vide. Git ne les suivra pas. La solution standard est de placer un fichier vide nommé .gitkeep en tant qu'espace réservé pour que git suive le dossier.

Dans mon cas, j'avais essayé de créer un repo git autour d'un repo existant (sans savoir qu'il existait). J'avais supprimé le .git de ce sous-repo il y a un moment, mais je n'ai pas réalisé qu'il était trop tard, et que git le suivait déjà en tant que sous-module . Vous pouvez en savoir plus sur leur comportement et sur la manière de les éliminer. aquí mais

  • la solution pour moi a été de lancer simplement git rm --cached path_to_submodule .

39voto

antfx Points 1472

Pour ajouter aux solutions possibles pour les autres utilisateurs :

Assurez-vous que vous n'avez pas changé la casse du nom du dossier dans Windows :

J'ai rencontré un problème similaire avec un dossier appelé Setup contrôlé par Git et hébergé sur GitHub, tous les développements ont été réalisés sur une machine Windows.

À un moment donné, j'ai changé le dossier en setup (S minuscule). À partir de ce moment, lorsque j'ajoutais de nouveaux fichiers au dossier d'installation, ils étaient stockés dans le dossier setup et non le dossier Setup mais je suppose qu'étant donné que je développais sur une machine Windows, les dossiers existants ont été supprimés. Setup dans git/github n'a pas été modifié en setup .

Le résultat est que je ne peux pas voir tous les fichiers dans le fichier setup sur GitHub. Je pense que si j'avais cloné le projet sur une machine *nix, j'aurais vu deux dossiers, Setup y setup .

Assurez-vous donc que vous n'avez pas changé le dossier contenant les données sur une machine Windows, si c'est le cas, je vous suggère de le faire :

  • Renommer le dossier en quelque chose comme setup-temp
  • git add -A
  • git commit -m "Whatever"
  • Renommez le dossier à votre convenance
  • git add -A
  • git commit -m "Whatever"

32voto

mobiusloopy Points 251

Si le fichier est exclu par .gitignore et que vous voulez quand même l'ajouter, vous pouvez le forcer avec :

git add -f path/to/file.ext

18voto

gaoagong Points 88

Je viens d'avoir ce problème et le problème était que je me trouvais dans un répertoire et non au niveau supérieur. Une fois que je me suis déplacé au niveau supérieur, cela a fonctionné.

16voto

Brad Points 61171

Bizarre, mais je me suis battu avec git toute la nuit pour ajouter un fichier. Il s'avère qu'il a déjà été ajouté. Git ne récupérait pas mes changements, car les changements n'étaient pas sauvegardés, car le fichier était inaccessible par mon compte, et mon IDE ne le signalait pas par SSH.

En bref, vérifiez que vous ne l'avez pas déjà ajouté au référentiel.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X