Tengo ~/bin/git-continue
un ~/bin/git-abort
script que se ve así:
#!/bin/bash
repo_path=$(git rev-parse --git-dir)
if [ $? -ne 0 ]; then
exit $?
fi
if [ -d "${repo_path}/rebase-merge" ]; then
git rebase --continue
elif [ -d "${repo_path}/rebase-apply" ]; then
git rebase --continue
elif [ -f "${repo_path}/MERGE_HEAD" ]; then
git merge --continue
elif [ -f "${repo_path}/CHERRY_PICK_HEAD" ]; then
git cherry-pick --continue
elif [ -f "${repo_path}/REVERT_HEAD" ]; then
git revert --continue
else
echo "No something in progress?"
fi
~/bin
También puse el directorio PATH
poniendo esto en ~/.bashrc
:
[[ ":$PATH:" != *":~/bin:"* ]] && PATH="~/bin:${PATH}"
export PATH
Entonces, verifiqué que $ git-continue
funciona bien, pero git continue
genera el siguiente error:
git: 'continue' is not a git command. See 'git --help'.
¿Qué puedo buscar para la posible causa de este error?
Respuesta1
Tu PATH
contiene archivos ~/bin
. Tu caparazón entiende lo que ~/
significa pero git
aparentemente no. Debe incluir la ruta completa a ~/bin
en su archivo PATH
.
Si usara PATH=~/"bin:${PATH}"
en lugar de PATH="~/bin:${PATH}"
, se produciría una expansión de tilde y PATH
se almacenaría la ruta expandida. Pero hay un problema con :~/bin:
el interior [[ ]]
. No citar la tilde no es la única condición (ver "Expansión de tilde" en man 1 bash
), esto dificulta la expansión :~/bin:
. Y debe expandirlo para probarlo con la ruta completa en PATH
.
Es más fácil de usar $HOME
:
[[ ":$PATH:" != *":$HOME/bin:"* ]] && PATH="$HOME/bin:${PATH}"
export PATH
$HOME
se expande antes de que se asigne toda la cadena a la PATH
variable. Este medio PATH
ahora contiene elllenocamino hacia tu $HOME/bin
. git
entenderás este camino.
Respuesta2
Podrías crear unalias personalizadopara solucionar este problema. Puede ser preferible usar un alias porque será más fácil de depurar para alguien que no conoce su personalización y actualmente no está manejando nada en su comando, sino que simplemente desea ejecutar una serie de comandos.
Ver tambiénCómo incrustar un script bash directamente dentro de un alias de giten StackOverflow.
Para cualquiera interesado, parece que la única documentación para este comportamiento actualmente se encuentra en elfuentesegúnEntonces preguntayproblema de git-scm.