Comment git valider un seul fichier / répertoire


216

J'ai essayé la commande suivante:

git commit path/to/my/file.ext -m 'my notes'

Recevez une erreur dans git version 1.5.2.1:

error: pathspec '-m' did not match any file(s) known to git.
error: pathspec 'MY MESSAGE' did not match any file(s) known to git.

Cette syntaxe est-elle incorrecte pour les validations de fichiers ou de répertoires uniques?

RÉPONSE: Des arguments étaient attendus dans cet ordre ...

git commit -m 'my notes' path/to/my/file.ext

MISE À JOUR: ce n'est plus strict :)


1
Êtes-vous sûr d'avoir la bonne version? Mise à jour vers 1.5.2.1? 1.5.2.1 a maintenant plus de 4 ans.
CB Bailey

Est-ce que quelque chose vous interdit de mettre à jour git?
Adam Dymitruk

BTW: Il s'agissait d'une machine virtuelle issue d'une ancienne recette. Git local était à jour, ne réalisait pas que cette version était ancienne. La rigueur a changé.
doublejosh

Réponses:


352

Vos arguments sont dans le mauvais ordre. Essayez git commit -m 'my notes' path/to/my/file.ext, ou si vous voulez être plus explicite, git commit -m 'my notes' -- path/to/my/file.ext.

Soit dit en passant, git v1.5.2.1 a 4,5 ans. Vous voudrez peut-être mettre à jour vers une version plus récente (1.7.8.3 est la version actuelle).


2
Vous faites une bonne observation. Cependant, fait intéressant, Git 1.7.5.1 sur Windows accepte allègrementgit commit path_to_file -m 'message'
Sri Sankaran

@SriSankaran: On dirait qu'ils lui ont alors appris à reconnaître les arguments hors service. Mais selon la documentation, l'ordre correct est de mettre la liste des fichiers en dernier, et c'est probablement une bonne idée de s'en tenir à la version documentée des choses.
Lily Ballard

Merci. L'ordre de ces messages a changé ... ou du moins la rigueur de l'ordre a changé;)
doublejosh

1
@DavidDimalanta: Que voulez-vous dire?
Lily Ballard

1
@ihebiheb En ce moment, je ne vois aucun autre paramètre non indicateur, git commitdonc je suppose que la réponse est "rien", mais dans de nombreuses autres commandes git, le --chemin se distingue des autres arguments de forme libre (par exemple, avec git logle --empêche un chemin de étant interprété comme une plage de révision à la place)
Lily Ballard


16

Si vous êtes dans le dossier contenant le fichier

git commit -m 'my notes' ./name_of_file.ext

1
si je suis déjà dans le fichier, ai-je besoin d'un "./" (point-barre oblique)? pourrais-je utiliser git commit -m "my note" name_of_file.txt?
Chris22

@ Chris22 Je ne sais pas ce que vous entendez par "si je suis déjà dans le fichier" (peut-être que vous vouliez dire "dans le répertoire"?) ... ./est juste une syntaxe de chemin normale, mais oui, pas nécessaire dans cet exemple.
Jonathan Cross

7

Utilisez l' -ooption.

git commit -o path/to/myfile -m "the message"

-o, - ne valide que les fichiers spécifiés


Cette option n'est pas nécessaire. Si vous incluez une page de fichier dans votre commande commit, elle ne validera que ces fichiers.
doublejosh

Bon à savoir si vous voulez vous assurer lorsque vous jouez avec d'autres paramètres, par exemple--amend
Tomas Varga

5

Spécifiez le chemin après le message de validation entré, comme:

git commit -m "commit message" path/to/file.extention

4

Pour git 1.9.5 sur Windows 7: "mes notes" (guillemets doubles) a corrigé ce problème. Dans mon cas, mettre le (s) fichier (s) avant ou après le -m 'message'. n'a fait aucune différence; l'utilisation de guillemets simples était le problème.

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.