Esto está rompiendo
alias f='git flow feature' complete -F __git_flow_feature f
Funciona eventualmente (después de 2 'tabs') pero arroja un error en cada 'pestaña' presionada.
-bash: [: 1: unary operator expected
¿Algunas ideas?
Funciona para mí, cuando lo hago:
De todos modos, la razón más común para el error "[: 1: operador unario esperado" es que tiene en el código del script de shell como:
if [ 1 = $MYVAL ]
y tu MYVAL
no está configurado. Inspeccione sus funciones de finalización. Puede agregar set -x
para depurarlo.
Por lo general, la solución más fácil es citar la variable para que el operador obtenga el argumento vacío, pero tendrá la cantidad correcta de arguments:
if [ 1 = "$MYVAL" ]
También tuve este problema y cada búsqueda en Google me llevó de vuelta a esta publicación.
Estoy publicando la solución que encontré usando la respuesta de Michal y el comentario de Daenyth …
Mi git-flow.bash era idéntico, pero creo que nuestros files de finalización de git pueden variar.
Para arreglar esto, tuve que modificar mi file de finalización de git ubicado en /etc/bash_completion.d/git
Antiguo:
# __git_find_on_cmdline requires 1 argument __git_find_on_cmdline () { local word subcommand c=1 while [ $c -lt $cword ]; do word="${words[c]}" for subcommand in $1; do if [ "$subcommand" = "$word" ]; then echo "$subcommand" return fi done c=$((++c)) done }
Nuevo:
# __git_find_on_cmdline requires 1 argument __git_find_on_cmdline () { local word subcommand c=1 while [[ $c -lt $cword ]]; do word="${words[c]}" for subcommand in $1; do if [ "$subcommand" = "$word" ]; then echo "$subcommand" return fi done c=$((++c)) done }
Observe el doble corchete que tuve que agregar al nuevo código. Ese fue el único cambio que hice.
¿Por qué no solo usas git-flow-completion ? Las instrucciones para bash son:
$ cd /etc/bash_completion.d $ sudo wget https://raw.githubusercontent.com/bobthecow/git-flow-completion/master/git-flow-completion.bash $ exec $SHELL
también hay instrucciones para zsh o fish .
Tengo este alias:
alias gn="git-number" alias gb="gn -c git blame" alias ge="gn -c $EDITOR" alias ga="gn add" alias gr="gn -c git reset" alias gap="EDITOR='$EDITOR -w' gn add -p" alias gd="gn -c git diff -b -w --ignore-blank-lines" alias gds="gd --staged" alias gc="gn -c git checkout" alias gcf="git flow feature checkout" alias gl="gn -c git log -w -b -p --ignore-blank-lines" alias gls="git log --stat" alias cm="EDITOR='$EDITOR -w' git commit" alias grb="git stash save 'REBASE' && EDITOR='$EDITOR -w' git rebase -i" alias grbc="EDITOR='$EDITOR -w' git rebase --continue" gcd() { test -n "$1" && cd $(dirname $(git list $1)) } source ~/.git-completion.bash __git_complete gn _git __git_complete ga _git_add __git_complete gap _git_add __git_complete gd _git_diff __git_complete gds _git_diff __git_complete gc _git_checkout __git_complete gcf _git_checkout __git_complete gl _git_log __git_complete gls _git_log __git_complete cm _git_commit source ~/.git-flow-completion.bash
E instale scripts de completion
como:
wget -O ~/.git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash wget -O ~/.git-flow-completion.bash https://raw.githubusercontent.com/petervanderdoes/git-flow-completion/develop/git-flow-completion.bash
El número de Git anotado aquí es: https://github.com/holygeek/git-number Solo copie los binarys en el repository para ~/bin