私はcygwinでbashバージョン4.1.2(1)-リリース(x86_64-redhat-linux-gnu)とgit 1.7.1を使用しています。入力パラメータが2回必要なコマンドのエイリアスを作成したいと思います。次のようなこのガイドライン、私が書いた
[alias]
branch-excise = !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
最後にaとaを試しましたが、-
同じエラーが発生しました。--
この問題をどのように解決できますか?
ベストアンサー1
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.
(...)