Il tuo PATH contiene ~/bin non espanso . La tua shell capisce cosa ~/ significa ma git a quanto pare no. Dovresti includere il percorso completo di ~/bin nel tuo PATH .
Se hai usato PATH=~/"bin:${PATH}" invece di PATH="~/bin:${PATH}" , si verifica l'espansione della tilde e PATH memorizzerebbe il percorso espanso. Ma c'è un problema con :~/bin: all'interno di [[ ]] . Non citare la tilde non è l'unica condizione (vedi "Espansione della tilde" in man 1 bash ), questo rende l'espansione :~/bin: difficile. E devi espanderlo per testare il percorso completo in PATH .
È più facile usare $HOME :
[[ ":$PATH:" != *":$HOME/bin:"* ]] && PATH="$HOME/bin:${PATH}"
export PATH
$HOME viene espanso prima che l'intera stringa venga assegnata al PATH variabile. Questo significa PATH ora contiene il completo percorso al tuo $HOME/bin . git capirà questo percorso.