質問: !sh -c 'git branch -d $1; git push origin --delete $1' -- そして私はこのエラーを受け取ります:$> git branch-excise my-branch sh: -c: line 0: unexpected eof while looking for matching `'' sh: -c: line 1: syntax error: unexpected end of file 私は両方を試しました-と--最後に、しかし私は同じエラーを受け取ります。どうすればこれを修正できますか?
回答: man git-configのコメント: 構文はかなり柔軟で寛容です。空白はほとんど無視されます。 #と;文字は行末までコメントを開始し、空白行は無視されます。 そう:branch-excise = !bash -c 'git branch -d $1; git push origin --delete $1' と同等です:#!/usr/bin/env bash bash -c 'git branch -d $1 上記のスクリプトを実行すると、次のように出力されます。/tmp/quote.sh: line 3: unexpected eof while looking for matching `'' /tmp/quote.sh: line 4: syntax error: unexpected end of file 1つの解決策は、コマンド全体を"に配置することです。branch-excise = !"bash -c 'git branch -d $1; git push origin --delete $1'" ただし、$1が空であるため、それでも機能しません。$ git branch-excise master fatal: branch name required fatal: --delete doesn't make sense without any refs これを機能させるには、.gitconfigにダミー関数を作成し、次のように呼び出す必要があります。branch-excise = ! "ddd () { git branch -d $1; git push origin --delete $1; }; ddd" 使用法:$ git branch-excise master error: cannot delete the branch 'master' which you are currently on. (...)