9

Git リモート リポジトリに注釈付きタグをプッシュできません。すべてのアクセス許可は gerrit で提供されています。例えば。[参照/*]

以下のコマンドを使用してタグを作成しています

git tag -a v1.0 -m 'Base Version' 712d77e

以下のコマンドを使用してプッシュしようとすると

git push origin v1.0 

また

git push origin --tags

次のエラーが表示されます。

Counting objects: 1, done.
Writing objects: 100% (1/1), 157 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done
To ssh://...
! [remote rejected] v1.0 -> v1.0 (prohibited by Gerrit)
error: failed to push some refs to 'ssh://...'

タグをリポジトリにプッシュする方法を教えてください。

ありがとう....

4

5 に答える 5

20

これは、たとえば、プッシュするユーザーに十分な権限がないなどの理由で、プッシュが許可されていない場合に Gerrit によって返される一般的なエラー メッセージです。

特に、次のエラーが発生します。

  1. アップロード権限のないブランチにコードレビュー用のコミットをプッシュした場合 (アクセス権 Push on refs/for/refs/heads/*)

  2. プッシュ アクセス権なしでコード レビューをバイパスした場合refs/heads/*

  3. 注釈付きタグのプッシュ アクセス権なしで注釈付きタグをプッシュした場合refs/tags/*

  4. 署名済みタグのプッシュ アクセス権なしで署名済みタグをプッシュした場合refs/tags/*

  5. 参照名の参照を作成するアクセス権なしで軽量タグをプッシュした場合refs/tags/*

  6. 他の誰かをタガーとしてタグをプッシュし、参照名に対する Forge Committer アクセス権を持っていない場合refs/tags/*

  7. 状態が読み取り専用のプロジェクトにプッシュする場合

新規ユーザーの場合、誤ってコード レビューをバイパスしようとすることがよくあります。プロジェクトでコード レビューのバイパスが許可されていないため、プッシュは失敗し、Gerrit によって禁止されているというエラー メッセージが表示されます。(eg ) にプッシュする代わりに (eg ) に直接refs/heads/*プッシュすることにより、コード レビューをバイパスします。refs/heads/masterrefs/for/*refs/for/master

Gerrit による禁止からのコピー

詳細説明: 私は gerrit 2.7 の新規インストールで同じ問題を抱えており、このスタックオーバーフローの質問を検索して見つけましたが、私のケースはこの説明 (軽量タグ) の 5 番だったので、refs/tags/* の参照の作成権限を追加し、問題が解決しました。

于 2013-11-18T07:13:55.513 に答える
3

[refs/tags/*] に次のプロジェクトの権限を追加する必要があります。

  • 参照の作成: 新しいタグを作成します。
  • Forge Committer Identity: 別のタグアップローダ (あなた) を元のタグ付け者に許可します。
  • Forge Author Identity: 他のユーザーに属するコミットの処理を許可します。

詳細については、 Gerrit アクセス制御を参照してください。

于 2015-07-14T09:12:20.960 に答える
2

この行はあなたにヒントを与えます:

! [remote rejected] v1.0 -> v1.0 (prohibited by Gerrit)

ユーザーが「注釈付きタグのプッシュ」権限を持つグループに属していないため、Gerrit はプッシュを禁止しました。

于 2013-05-09T15:50:19.227 に答える
1

注釈付きを作成し、gerrit をチェックします。注釈付きの作成が許可されている適切なグループに属している必要があります

単純なタグを作成すると、gerrit はその参照を拒否する可能性がありますが、やはり gerrit の構成に依存する可能性があります。

注釈付きタグを作成します。

git tag -a -m "メッセージ" 

すべてのタグをプッシュします。

git push --tags

チェックタグはリモートで作成されます:

git ls-remote --tags
于 2015-10-23T10:00:04.180 に答える