2012-01-17 36 views

Trả lời

2

Nó làm việc cho tôi, khi tôi làm:

  1. wget http://www.triquanta.nl/sites/default/files/git-flow.bash
  2. nguồn git-flow.bash
  3. alias f = 'tính năng dòng chảy git'
  4. hoàn __git_flow_feature -F f
  5. f tabtab

Nhưng dù sao, lý do phổ biến nhất cho các "[: 1: nhà điều hành unary dự kiến" lỗi là bạn có trong mã shell script như:

if [ 1 = $MYVAL ] 

và bạn MYVAL không được thiết lập. Kiểm tra các chức năng hoàn thành của bạn. Bạn có thể thêm set -x để gỡ lỗi.

Thông thường các giải pháp đơn giản nhất là để báo biến để các nhà điều hành sẽ nhận lập luận trống rỗng, nhưng sẽ có con số chính xác của đối số:

if [ 1 = "$MYVAL" ] 
+1

Vì nó bash , sử dụng '[[' thay vì '['. Đó là thông minh hơn – Daenyth

2

Tôi có vấn đề này quá và mọi tìm kiếm Google đưa tôi trở lại bài này.

Tôi gửi bài giải pháp tôi tìm thấy câu trả lời bằng Michal và bình luận Daenyth của ...

git-flow.bash của tôi là giống hệt nhau, nhưng tôi nghĩ rằng file hoàn git của chúng tôi có thể thay đổi.

Để sửa lỗi này tôi đã phải sửa đổi tập tin hoàn git của tôi nằm ở /etc/bash_completion.d/git

Cũ:

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

mới:

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

Thông báo khung đôi tôi phải thêm vào Mã mới. Đó là thay đổi duy nhất tôi thực hiện.

+0

đã không hoạt động đối với tôi, vẫn còn với cùng một lỗi [: 1: nhà điều hành đơn nhất dự kiến – decebal

2

Tại sao không chỉ sử dụng git-flow-completion? Các hướng dẫn cho bash là:

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

cũng có hướng dẫn zsh hoặc fish.

1

Tôi có bí danh này:

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 

Và cài đặt completion kịch bản như:

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  

số Git lưu ý ở đây là: https://github.com/holygeek/git-number Chỉ cần sao chép mã nhị phân ở repo để ~/bin