zsh では、次のコマンドを使用します。ローカルおよびリモートポイント削除機能次のコマンドを使用します。
gpDo () {
git branch -d "$1" && git push --delete origin "$1"
}
現在、Gitブランチのオートコンプリートは機能しません。フルポイント名を手動で入力する必要があります。このタイプの機能を使用するには、タブの完成をどうすればよいですか?
答え1
私はあなたが使用していると仮定します「新しい」完成システムによってアクティブになりましたcompinit
。 oh-my-zshを使用している場合はそうです。
gitブランチ名を使用するようにzshに指示する必要がありますgpDo
。 Gitはすでにブランチ名を完成させる方法を提供しています。 zsh 5.0.7以降、これは機能ですが安定__git_branch_names
したインターフェースではないため、他のバージョンでは変更される可能性があります。この機能を使用するには、次の行を次の行に入力します.zshrc
。
compdef __git_branch_names gpDo
このステートメントを使用すると、コマンドラインgpDo
でタスクを1回以上完了した後にのみ完了が適用されますgit
。これは zsh の機能自動ロードの問題によるものです。または_git 2>/dev/null
あなたのもので実行してください.zshrc
。完了関数が無効なコンテキストで呼び出されるため、エラーが発生しますが、エラーは無害であり、ロードおよび関連関数(__git_branch_namesを含む)の副作用は_git
そのまま残ります。
または、独自のgit分岐完了機能を定義してください。迅速で汚い方法:
_JJD_git_branch_names () {
compadd "${(@)${(f)$(git branch -a)}#??}"
}