1. ホーム
  2. git

[解決済み] gitのコミットとタグを同時にプッシュ

2022-03-19 18:12:48

質問

という理由は承知しています。 git push --tags とは別の操作です。 git push . タグのプッシュは、誤ってプッシュしてしまわないように、意識的に選択する必要があります。それは結構なことです。でも、両方を一緒にプッシュする方法はないのですか?(別に git push && git push --tags .)

解決方法は?

2020年8月更新

で紹介したように これ による回答 SoBeRich で、そして私の 自分の答え の時点では git 2.4.x

git push --atomic origin <branch name> <tag>

(注意:これは実際には HTTPS で動作するのは、Git 2.24 の場合のみです。 )

2015年5月更新

現在 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> という軽量タグがあり、これはプッシュされないだろう。 ここで紹介した )

2013年4月更新

以降 git 1.8.3 (2013年4月22日) , ブランチをプッシュし、タグをプッシュするという2つのコマンドを実行する必要がなくなりました。 :

<ブロッククオート

新しい" --follow-tags オプションは、「" git push になります。 ブランチをプッシュする際に、関連する注釈付きタグをプッシュします。 .

新しいコミットをプッシュする際に、試せるようになりました。

git push --follow-tags

を押さない。 すべて と一緒にプッシュされたコミットから参照されるもののみです。 git push .

Git 2.4.1+(2015年第2四半期)にはオプションが導入されます。 push.followTags : " を参照してください。 の作り方 " git push " ブランチ内のインクルードタグ? "です。

2010年9月、オリジナルの回答

核となる選択肢は git push --mirror の下にすべての参照を押し込むことになります。 refs/ .

また、現在のブランチのコミットでタグをひとつだけプッシュすることもできます。

git push origin : v1.0.0 

を組み合わせることができます。 --tags というように refspec を指定します。

git push origin --tags :

(以下 --tags を意味します。以下のすべての参照は refs/tags が押されます。 コマンドラインで明示的に指定された参照仕様に加え )


こんなエントリもありますね " ブランチとタグのプッシュを一回の "git push" で実行する "

<ブロッククオート

に便利なヒントが投稿されました。 Git メーリングリスト Zoltán Füzesi氏によるものです。

私は .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/* ウィル は、あなたのすべてのブランチを強制的にプッシュします。 .

ちょうど今、これに噛まれたので、ご参考までに。


レネ・シャイベ が追加されました。 この興味深いコメント :

<ブロッククオート

--follow-tags の下にあるタグのみであるため、このパラメータは誤解を招きやすい。 .git/refs/tags が考慮されます。
もし git gc が実行されると、タグは .git/refs/tags から .git/packed-refs . その後 git push --follow-tags ... は期待通りに動作しなくなりました。