Estoy usando OSX y deseo agregar una función en la terminal para ejecutar un conjunto de comandos de git. Por lo tanto, creé un .bash_profile en mi directorio de inicio con el siguiente código:
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH=/usr/local/bin:$PATH
export PATH="$PATH:"/Applications/microchip/xc8/v1.35/bin""
export PATH=$PATH:"/Applications/microchip/xc16/v1.25/bin"
export PATH="$PATH:"/Applications/microchip/xc8/v1.38/bin""
function lazygit() {
git add .
git commit —a -m “$1”
git push
}
Sin embargo, después de ejecutar este código recibo el siguiente error:
Seths-Air:rpt04-recursion Seth$ lazygit "test of lazygit"
error: pathspec '—a' did not match any file(s) known to git.
error: pathspec 'of' did not match any file(s) known to git.
error: pathspec 'lazygit”' did not match any file(s) known to git.
Everything up-to-date
Respuesta1
La línea
git commit —a -m “$1”
contiene varios caracteres que parecen similares a los que interpreta el shell pero que en realidad son otros caracteres.
Primero —a
vs -a
: debido al guión más largo, estenointerpretado como una opción sino como un nombre de archivo. Utilice un guión/menos ( -
) estándar aquí.
Segundo “$1”
versus "$1"
: su cadena de comentarios de registro se dividirá en palabras separadas y la primera y la última palabra se extenderán con un carácter divertido.
En todos los casos, parece que utilizó un editor inadecuado para escribir programas y scripts o copió y pegó cosas de algún sitio que hizo esa alteración. Necesita caracteres ASCII simples, ya que están directamente en su teclado y no en las variantes "bonitas" destinadas a humanos. En caso de duda, cópialos y pégalos desde aquí :-)