ローカルブランチとリモートブランチの両方を同時に削除するエイリアスを作成しようとしていますが、シンタックスが動作しない理由を理解できません。 ~/.gitconfig
では、私は、次のエイリアスを試してみたが、それぞれは予想外で同じ結果、生成します。両方の農産物ローカルとリモートを削除するgitエイリアス
[alias]
nuke = !sh -c 'git branch -D $1 && git push origin :$1'
と
[alias]
nuke = !git branch -D $1 && git push origin :$1
を:
$> git branch
* master
mybranch
$> git nuke mybranch
Everything up-to-date
$> git branch
* master
mybranch
順序を切り替えますコマンドの別の結果が得られますが、私が探しているものだけではありません。
[alias]
nuke = !git push origin :$1 && git branch -D $1
...
$> git branch
* master
mybranch
$> git nuke mybranch
Everything up-to-date
Deleted branch mybranch (was d719895)
$> git branch
* master
$> git push origin :mybranch
To [email protected]:biegel/repo.git
- [deleted] mybranch
私はシェル上で直接そのコマンドを実行すると、それがうまく動作:
$> git branch
* master
mybranch
$> git branch -D mybranch && git push origin :mybranch
Deleted branch mybranch (was d719895
To [email protected]:biegel/repo.git
- [deleted] mybranch
$> git branch
* master
私はgit push origin --delete $1
を使用して、~/.bashrc
でエイリアスを作成しようとした!f() { };
とシェルの機能を使用して、何も取っていないようにみえました!
私はあきらめます。私がここで紛失していることに関する考えは?
ありがとうございました。
ああ、ポインタに感謝を。私はおそらくgit-extrasに行くでしょう。 – biegel
[jszakmeisterの答え](http://stackoverflow.com/a/16740731/456814)を参照してください。エイリアスで** $ 1を使用できます。 –
jszakmeisterの回答は実際には素晴らしい解決策ですが、エイリアスではまだ$ 1を使用できません。 'sh'はそこで' $ 1'の処理をしています。エイリアスへの引数は常にエイリアスに追加されます。 – Chronial