0

タグをリモートで削除するための git エイリアスの作成に問題があります。

私の中には次のものがあります.gitconfig

[alias]
  deltag = push origin :refs/tags/$1

deltagタグをローカルで削除した後にエイリアスを実行すると (を使用git tag -d testtag)、次のエラーが発生します。

$ git deltag testtag
error: src refspec testtag does not match any.
error: failed to push some refs to 'ssh://........'

このエイリアスをローカルで削除する前に実行しようとすると、代わりに次のようになります。

$ git deltag testtag
remote: warning: Deleting a non-existent ref.
To ssh://........
- [deleted]         $1

このエイリアスに使用する正しい構文は何ですか?

4

1 に答える 1

3

StackOverflow を探し回り、他の回答をまとめることでこれを解決しました。

他の解決策もあるかもしれませんが、エイリアスをシェル コマンドに変更すると、タグ引数が正常に渡されます。

[alias]
  deltag = !sh -c 'git push origin :refs/tags/$1' -

または、ローカルとリモートの両方の削除を 1 つのエイリアスに結合することもできます。

[alias]
  deltag = !sh -c 'git tag -d $1 && git push origin :refs/tags/$1' -

出力:

$ git deltag testtag
Deleted tag 'testtag' (was be73a23)
To ssh://.......
 - [deleted]         testtag
于 2016-06-02T06:00:28.223 に答える