Estou usando o OSX e desejo adicionar uma função no terminal para executar um conjunto de comandos git. Portanto, criei um .bash_profile no meu diretório inicial com o código abaixo:
# 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
}
Porém, após executar este código recebo o seguinte erro:
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
Responder1
A linha
git commit —a -m “$1”
contém vários caracteres que se parecem com aqueles que o shell interpreta, mas na verdade são outros caracteres.
Primeiro —a
vs -a
: Devido ao traço mais longo, estenãointerpretado como uma opção, mas como um nome de arquivo. Use um traço/menos padrão ( -
) aqui.
Segundo “$1”
vs "$1"
: Sua sequência de comentários de check-in será dividida em palavras separadas e a primeira e a última palavras serão estendidas com um caractere engraçado.
Em todos os casos, parece que você usou um editor inadequado para escrever programas e scripts ou copiou e colou coisas de algum site que fez essa confusão. Você precisa de caracteres ASCII simples, pois eles estão diretamente no teclado e não nas variantes de "impressão bonita" destinadas a humanos. Em caso de dúvida, copie e cole-os aqui :-)