Cómo git commit un solo archivo / directorio


216

Intenté el siguiente comando:

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

Recibe un error en git versión 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.

¿Es esa sintaxis incorrecta para el archivo singe o las confirmaciones de directorio?

RESPUESTA: Se esperaban argumentos en este orden ...

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

ACTUALIZACIÓN: ya no es estricto :)


1
¿Estás seguro de que tienes tu versión correcta? ¿Actualizando a 1.5.2.1? 1.5.2.1 tiene más de 4 años ahora.
— CB Bailey

¿Hay algo que te prohíba actualizar git?
— Adam Dymitruk

Por cierto: esta era una máquina virtual creada a partir de una receta antigua. Git local estaba actualizado, no se dio cuenta de que esta versión era antigua. La rigidez cambió.
— doublejosh

Respuestas:


352

Sus argumentos están en el orden incorrecto. Tratar git commit -m 'my notes' path/to/my/file.ext, o si quieres ser más explícito, git commit -m 'my notes' -- path/to/my/file.ext.

Por cierto, git v1.5.2.1 tiene 4,5 años. Es posible que desee actualizar a una versión más nueva (1.7.8.3 es la versión actual).


2
Haces una buena observación. Sin embargo, curiosamente, Git 1.7.5.1 en Windows acepta alegrementegit commit path_to_file -m 'message'
— Sri Sankaran el

@SriSankaran: Parece que le enseñaron a reconocer argumentos fuera de orden entonces. Pero de acuerdo con la documentación, el orden correcto es colocar la lista de archivos al final, y probablemente sea una buena idea atenerse a la versión documentada de las cosas.
— Lily Ballard

Gracias. El orden de estos mensajes cambió ... o al menos la rigidez del orden cambió;)
— doublejosh

1
@DavidDimalanta: ¿Qué quieres decir?
— Lily Ballard

1
@ihebiheb Mirando ahora no veo ningún otro parámetro no son del pabellón de git commitmodo que supongo que la respuesta es "nada", pero en muchos otros comandos de Git los --caminos distingue de otros argumentos de forma libre (por ejemplo, con git loglos --evita un camino desde interpretado como un rango de revisión en su lugar)
— Lily Ballard


16

Si está en la carpeta que contiene el archivo

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

1
si ya estoy en el archivo, ¿necesito un "./" (punto-barra diagonal) inicial? podría usar git commit -m "my note" name_of_file.txt?
— Chris22

@ Chris22 No estoy seguro de lo que quieres decir con "si ya estoy en el archivo" (¿tal vez quisiste decir "en el directorio"?) ... ./es una sintaxis de ruta normal, pero sí, no es necesario en este ejemplo.
— Jonathan Cross

7

Usa la -oopción.

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

-o, --solo compromete solo los archivos especificados


Esa opción no es necesaria. Si incluye una página de archivo en su comando de confirmación, solo confirmará esos archivos.
— doublejosh

Bueno saber si usted quiere asegurarse de que jugar con otros parametros, por ejemplo--amend
— Tomas Varga

5

Especifique la ruta después del mensaje de confirmación ingresado, como:

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

4

Para git 1.9.5 en Windows 7: "mis notas" (comillas dobles) corrigió este problema. En mi caso, poner los archivos antes o después del -m 'mensaje'. no hizo ninguna diferencia; El uso de comillas simples fue el problema.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.