それgit push --tags
がプレーン・オールドとは別の操作である理由を知っていgit push
ます。タグを誤ってプッシュしたくないので、タグをプッシュすることは意識的な選択である必要があります。それはいいです。しかし、両方を一緒にプッシュする方法はありますか?(を除いてgit push && git push --tags
。)
--follow-tags
git 1.8.3以降の新しいオプションがあります
それgit push --tags
がプレーン・オールドとは別の操作である理由を知っていgit push
ます。タグを誤ってプッシュしたくないので、タグをプッシュすることは意識的な選択である必要があります。それはいいです。しかし、両方を一緒にプッシュする方法はありますか?(を除いてgit push && git push --tags
。)
--follow-tags
git 1.8.3以降の新しいオプションがあります
回答:
以下のようにgit 2.4.1、あなたが行うことができます
git config --global push.followTags true
trueに設定した場合、デフォルトで--follow-tagsオプションを有効にします。
--no-follow-tagsを指定することで、プッシュ時にこの設定をオーバーライドできます。
ウェス・ハードに答えるマット・ロジャースのこのスレッドで述べたように:
--follow-tags
注釈付きタグのみをプッシュします。
git tag -a -m "I'm an annotation" <tagname>
それはプッシュされます(git tag <tagname>
私がここで述べたように、プッシュされない軽量タグとは対照的に)
以来gitの1.8.3(4月22D、2013) 、あなたは、もはや枝をプッシュする2つのコマンドを実行する必要がありませんし、その後プッシュタグに:
新しい「
--follow-tags
」オプションは、ブランチgit push
をプッシュするときに関連する注釈付きタグをプッシュするように指示します。
新しいコミットをプッシュするときに試すことができます:
git push --follow-tags
ただし、すべてのローカルタグがプッシュされるわけではなく、でプッシュされるコミットによって参照されるタグのみがプッシュされますgit push
。
Git 2.4.1+(2015年第2四半期)では、このオプションが導入されますpush.followTags
。「git push
「」にタグをブランチ内に含める方法」を参照してください。
核オプションはgit push --mirror
、すべての参照を押し下げるでしょうrefs/
。
現在のブランチコミットでタグを1つだけプッシュすることもできます。
git push origin : v1.0.0
この--tags
オプションを次のようなrefspecと組み合わせることができます。
git push origin --tags :
(これ--tags
は、コマンドラインに明示的にリストされているrefspecに加えてrefs/tags
、以下のすべての参照がプッシュされるからです)
また、このエントリ「ブランチとタグを1つの「git push」呼び出しでプッシュする」
便利なヒントがZoltánFüzesiによってGitメーリングリストに投稿されました。
私は
.git/config
これを解決するために使用します:
[remote "origin"]
url = ...
fetch = +refs/heads/*:refs/remotes/origin/*
push = +refs/heads/*
push = +refs/tags/*
これらの行を追加
git push origin
すると、すべてのブランチとタグがアップロードされます。それらの一部のみをアップロードする場合は、それらを列挙できます。まだ自分で試したことはありませんが、ブランチとタグを同時にプッシュする他の方法がgit pushに追加されるまでは便利なようです。
一方、入力は問題ありません。
$ git push && git push --tags
Aseem Kishoreによるコメントに注意してください。
push = +refs/heads/*
すべてのブランチを強制的にプッシュします。
これはちょうど今私を噛んだので、参考までに。
RenéScheibeがこの興味深いコメントを追加しました。
--follow-tags
パラメータは下のタグのみと誤解される.git/refs/tags
と考えられています。
場合git gc
に実行され、タグがから移動している.git/refs/tags
と.git/packed-refs
。その後git push --follow-tags ...
はもう期待どおりに動作しません。
push = +refs/heads/*
行がすべてのブランチを強制的にプッシュすることを正しく指摘しています。これはちょうど今私を噛んだので、参考までに。
--follow-tags
git 1.8.3で追加されたフラグですが、gitインストールをデフォルトに設定できますか
push.default
(git-scm.com/docs/git-configを)押しのデフォルトのアクションを定義することができます(nothing
、matching
、upstream
、simple
のようにstackoverflow.com/a/10002469/6309)。--follow-tag
明示的に追加する必要があります。
git push --follow-tags -f
うまくいきませんでした。
--follow-tags
パラメータは下のタグのみと誤解される.git/refs/tags
と考えられています。場合git gc
に実行され、タグがから移動している.git/refs/tags
と.git/packed-refs
。その後git push --follow-tags ...
はもう期待どおりに動作しません。
多分これは誰かを助ける:
1. git commit -a -m "msg"
2. git tag 0.1.0 // creates a new tag locally
3. git push origin tag 0.1.0 // pushes the tag & the code in the remote repo
Git GUIにはPUSHボタンがあります-駄洒落を許してください、そしてそれが開くダイアログボックスにはタグのチェックボックスがあります。
タグなしでコマンドラインからブランチをプッシュし、--follow-tags
上記のオプションを使用してブランチを再度プッシュしてみました。このオプションは、次の注釈付きタグとして説明されています。私のタグはシンプルなタグでした。
私は何かを修正し、コミットに修正のタグを付け(同僚が修正を選択できるように)、ソフトウェアのバージョン番号を変更して、作成したリリースにタグを付けました(同僚がそのリリースのクローンを作成できるようにするため)。
Gitは戻ってきて、すべてが最新であると述べました。タグを送信しませんでした!おそらくタグに注釈が付けられなかったためです。ブランチに新しいものがなかったためと思われます。
Git GUIで同様のプッシュを実行すると、タグが送信されました。
とりあえず、コマンドラインとではなく、Git GUIを使用してリモートに変更をプッシュします--follow-tags
。
git push && git push --tags
何ですか?