web-dev-qa-db-ja.com

Gitを使ってどのようにしてタグをリモートリポジトリにプッシュしますか?

私は自分のラップトップにリモートGitリポジトリをクローンしました、そして私が走ったので私はタグを追加したいと思いました

git tag mytag master

ラップトップでgit tagを実行すると、タグmytagが表示されます。それから、このタグをすべてのクライアントに持っているのでリモートリポジトリにプッシュしたいので、git Pushを実行しますが、メッセージが表示されます。

最新のものすべて

そして私が自分のデスクトップに行ってgit pullを実行してからgit tagを実行するとタグは表示されません。

また、プロジェクト内のファイルをマイナーチェンジしてからサーバーにプッシュしようとしました。その後、私はサーバーから私のデスクトップコンピュータに変更を引っ張ることができました、しかし私のデスクトップコンピュータ上でgit tagを実行するときまだタグがありません。

すべてのクライアントコンピュータがタグを認識できるように、自分のタグをリモートリポジトリにプッシュする方法を教えてください。

1912
Jonas

single タグをプッシュするには

git Push Origin <tag_name>

そして、次のコマンドは all tagsをプッシュします( 非推奨 )。

git Push --tags
3164
Trevor

git Push --follow-tags

これはGit 1.8.3で導入された正しいオプションです。

git Push --follow-tags

両方のコミットと両方のタグのみをプッシュします。

  • 注釈付き
  • プッシュされたコミットから到達可能(先祖)

これは正直です。

  • 注釈付きタグをリモートにプッシュするだけで、タグの衝突を避けるためにローカル開発用に軽量のタグを使用してください。以下も参照してください。 注釈付きタグと注釈なしタグの違いは何ですか?
  • 無関係のブランチに注釈付きタグをプッシュしません

これらの理由から--tagsは避けるべきです。

Git 2.4 Push.followTagsオプションを追加し、デフォルトでそのフラグをオンにしています。

git config --global Push.followTags true

具体的にプッシュするには、1つのタグでgit Push Origin tag_nameを実行します。

243
solgar

Trevor's answer に展開するには、単一のタグまたはすべてのタグを一度にプッシュできます。

単一のタグをプッシュする

git Push <remote> <tag>

これはこれを説明する 関連ドキュメント の要約です(簡潔にするため一部のコマンドオプションは省略しています)。

git Push [[<repository> [<refspec>…]]

<refspec>...

<refspec>パラメータのフォーマットは…ソース参照<src>、それに続くコロン:、それに続く宛先参照<dst>…です。

<dst>は、このプッシュでリモート側のどの参照が更新されるかを示します。:<dst>が省略された場合、<src>と同じ参照が更新されます。

tag <tag>は、refs/tags/<tag>:refs/tags/<tag>と同じ意味です。

すべてのタグを一度にプッシュする

git Push --tags <remote>
# Or
git Push <remote> --tags

これは 関連ドキュメント (簡潔にするために省略されたいくつかのコマンドオプション)の要約です:

git Push [--all | --mirror | --tags] [<repository> [<refspec>…]]

--tags

コマンドラインに明示的にリストされている参照仕様に加えて、refs/tagsの下のすべての参照がプッシュされます。

87
user456814

Git Pushコマンドではタグはリモートリポジトリに送信されません。次のコマンドを使用して、これらのタグを明示的にリモートサーバーに送信する必要があります。

git Push Origin <tagname>

下記のコマンドを使用して、一度にすべてのタグをプッシュできます。

git Push Origin --tags

Gitタグ付けの詳細については、以下の資料があります。

http://www.cubearticle.com/articles/more/git/git-tag

http://wptheming.com/2011/04/add-remove-github-tags

47
Ashutosh Meher

あなたはこのようなタグをプッシュすることができますgit Push --tags

45

あなたは単にgit Push --tagsコマンドであなたのローカルタグをプッシュすることができます。

$ git tag                         # see tag lists
$ git Push Origin <tag-name>      # Push a single tag
$ git Push --tags                 # Push all local tags 
22
Sajib Khan

タグをプッシュしていることを確認するためにgit Push <remote-name> tag <tag-name>を使用しています。 git Push Origin tag v1.0.1のように使います。このパターンはドキュメント(man git-Push)に基づいています。

OPTIONS
   ...
   <refspec>...
       ...
       tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.
6
Carl G