2012-01-17 10 views

risposta

2

Funziona per me, quando lo faccio:

  1. wget http://www.triquanta.nl/sites/default/files/git-flow.bash
  2. sorgente git-flow.bash
  3. alias f = 'caratteristica flusso git'
  4. completa -F __git_flow_feature f
  5. f schedascheda

In ogni caso, la ragione più comune per la "[: 1: operatore unario previsto" errore è che si ha nel codice script di shell come:

if [ 1 = $MYVAL ] 

e la tua MYVAL non è impostato. Ispeziona le tue funzioni di completamento. È possibile aggiungere set -x per eseguire il debug.

Di solito la soluzione più semplice è quella di citare la variabile quindi l'operatore otterrà l'argomento vuoto, ma avrà corretto numero di argomenti:

if [ 1 = "$MYVAL" ] 
+1

Dal momento che è bash usa '[[' invece di '['. È molto più intelligente – Daenyth

2

ho avuto anche questo problema ed ogni ricerca su Google mi portano di nuovo a questo post.

Vi metto la soluzione che ho trovato usando la risposta di Michal e commentare di Daenyth ...

mio git-flow.bash era identico, ma credo che i nostri file di completamento git potrebbero essere diverse.

Per correggere questo ho dovuto modificare il mio file di completamento git trova a /etc/bash_completion.d/git

Vecchio:

# __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 
} 

Nuovo:

# __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 
} 

Avviso la doppia staffa ho dovuto aggiungere al nuovo codice Questo è stato l'unico cambiamento che ho fatto.

+0

non ha funzionato per me, ancora con lo stesso errore [: 1: previsto unario operatore – decebal

2

Perché non usare solo git-flow-completion? Le istruzioni per bash sono:

$ cd /etc/bash_completion.d 
$ sudo wget https://raw.githubusercontent.com/bobthecow/git-flow-completion/master/git-flow-completion.bash 
$ exec $SHELL 

ci sono anche le istruzioni per zsh o fish.

1

ho questo 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 

ed installare completion script come:

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  

numero Git notare qui è: https://github.com/holygeek/git-number basta copiare i file binari in pronti contro termine a ~/bin

Problemi correlati