web-dev-qa-db-ja.com

タグを特定のブランチにプッシュする方法

私はv2.0というブランチをgerritに持っています。次に、このブランチの現在の統計をv2.0.1として表示します。

私のローカルリポジトリでブランチをチェックアウトし、次を使用してタグを追加しました

git tag v2.0.1

今、私はそれを強引にプッシュしようとしていますが、方法がわかりません。私はこれを試しました:

$ git Push Origin v2.0.1 HEAD:refs/heads/v2.0
! [remote rejected] v2.0.1 -> v2.0 (prohibited by Gerrit)

タグをプッシュしてどのようにすればいいですか?

15
Frank

いくつかグーグル検索した後、私は答えを見つけました:

gerritは注釈付きタグのみを受け入れます。注釈付きタグを作成してプッシュするのは非常に簡単です。

git checkout v2.0
git tag -am "Adding v2.0.1 tag" v2.0.1
git Push Origin v2.0.1 HEAD:refs/heads/v2.0
19
Frank
  1. 権限を追加します。

プロジェクトAccessをクリックし、次のように権限を追加します。

Reference:  
refs/tags/*

Push Annotated Tag 
Push Signed Tag 
  1. タグを追加

注釈付きタグ:git tag -a "message" tag_name

署名済みタグ:git tag -s tag_name

  1. タグをプッシュする

単純なコマンド:git Push --tags

Cmdを使用してサーバーリポジトリからタグをフェッチする場合:

git fetch --tags

あなたはドキュメントをチェックすることができます:

https://review.typo3.org/Documentation/access-control.html#category_Push_annotatedhttps://review.typo3.org/Documentation/access-control.html#category_Push_signed

9
lijinma

タグとブランチはGitで完全に独立した概念であるため、コマンドは意味がありません。タグはコミットにリンクするだけで、リポジトリ全体に適用されます。

タグとブランチはどちらも参照です。タグはコミットへの固定参照と考え、ブランチはコミットのブランチの先端にある移動参照と見なします。

v2.0.1とタグ付けされたコミットがすでにv2.0ブランチにある場合、両方をOriginにプッシュするだけでよいと思います。そうでない場合は、タグを含むブランチをv2.0ブランチにマージし、両方をプッシュする必要があります。

4
CharlesB

軽量タグをプッシュする場合は、参照名refs/tags/*に「参照の作成」権限を追加する必要があります。CharlesBが言ったように、タグとブランチはどちらも参照であるためです。

「参照の作成」権限を追加した後、git Push --tagsを使用して軽量タグをプッシュできます。

1
herbertD