49

このエラーが原因で、ローカルマスターからリモートマスターに変更をプッシュする際に問題が発生します。

remote: Processing changes: refs: 1, done
To ssh://xxxxx@gerrit.dev.xxxxx.net:29418/xxxxxx
 ! [remote rejected] HEAD -> refs/for/master (change 14823 closed)
error: failed to push some refs to 'ssh://xxxxx@gerrit.dev.xxxxx.net:29418/xxxxxx'

この問題を解決する方法はありますか?

git statusは、私のブランチが5コミットだけorigin/masterより進んでいることを示しています。

4

18 に答える 18

49

同じメッセージを受け取りました。それは、2 つのコミットで同じ Change-Id を取得できたためです。たぶん、私の地元の支店間でのチェリーピッキングまたは同様のことが原因です。コミット メッセージから Change-Id を削除することで解決され、コミット フックによって新しい Id が追加されました。

于 2014-04-02T12:40:17.043 に答える
32

コミット変更 ID の有効期限が切れています。つまり、レビュー 14823 が閉じられています。同じにプッシュすることはできません。

問題を修正するには、次の手順を実行します。

  1. git commit --amend
  2. 変更IDを削除
  3. 保存して終了
  4. 新しい変更 ID がコミットに追加されます。git log で確認できます。
  5. もう一度押す
于 2016-08-09T09:41:09.403 に答える
6

次のページで、変更 XXXXX クローズ エラーのために変更をオリジンにプッシュできない理由を正確に説明しているページを見つけました: https://git.eclipse.org/r/Documentation/error-change-closed.html

乾杯!

于 2012-08-15T15:39:35.390 に答える
6

5 つのコミットがあります。

それらのすべてに「Commit Message」というファイルがあります(Gerrit で使用されます)。
これらのファイルの 1 つに、Gerrit によって既に受け入れられてマスターにマージされた不適切な「Change-Id」が含まれている
ため、再度使用することはできません。

1 つの修正は、5 つのコミットすべてを 1 つにマージする
ことです。その過程で
、ファイル「コミット メッセージ」の「変更 ID」を削除します。

私の場合、3 つのコミットがあったので、次のようにしました:
git rebase -i HEAD~3

複数のコミットをマージする方法は他にもあります:
Git を使用して最後の X コミットを一緒に押しつぶす

于 2016-05-03T08:23:40.563 に答える
1

メッセージはchange 14823 closedバニラから来ていませんgit。そのリポジトリを維持している人は誰でも、あなたのプッシュを評価し、ローカルポリシーのためにそれを拒否している更新または更新後のフックを持っていることを示しています (すでに完了/クローズ済みとしてマークされている問題に追加のコミットを追加していると思います) )。それらのポリシーが何であるか、そしてコミットを追加できるように何らかの方法で変更を再度開く必要があるかどうか、または新しい変更要求を作成して (おそらく) 作業をリベースする必要があるかどうかを確認する必要があります。それ。

于 2012-08-15T16:11:03.133 に答える
1

git status によると、私のブランチは origin/master よりも 5 コミット進んでいます。

私がしているのは、最新のコードを取得することだけです。いくつかの微調整を行い、それをプッシュします。

これらの 5 つのコミットとは何ですか? それらはすべてあなたのものですか?

変更 14823 は、これら 5 つのコミットのいずれかに対応していますか? Gerrit でのステータスは?

于 2012-08-28T09:47:08.343 に答える
0

5 つのコミットがあります。

各コミットには、コミットが Gerrit のどの変更要求に属するかを識別する「Change-Id:」文字列を含む「コミット メッセージ」があります ( https://git.eclipse.org/r/Documentation/user-changeid を参照)。 html )

この場合、Change-Id 文字列によって識別される変更要求の 1 つ (または複数) は、Gerrit によって既にマージまたは放棄されているため、再度使用することはできません。

コミットをプッシュする前に、1 つ (または複数) のコミットのコミット メッセージを変更する必要があります( http://schacon.github.io/history.htmlを参照)。コミットごとに正しい Gerrit 変更要求を識別します。

于 2016-12-14T20:38:01.043 に答える
0

URL (ssh://xxxxx@gerrit.dev.xxxxx.net:29418/xxxxxx) と「HEAD -> refs/for/master」の両方で示されるように、コード レビュー ツールである gerrit にプッシュしています。 " メッセージ。変更が拒否された理由を突き止めるには、プッシュしようとしているリポジトリの管理者に相談する必要があります。

于 2012-08-15T18:15:09.477 に答える
0

コミットをプッシュすると、ターミナルに次のように表示されると、この問題も発生します。

! [リモート拒否] HEAD -> refs/for/android_ui.lnx.1.2.c1-dev (変更 1692698 クローズ)

サイトのレビューにアクセスして、1692698 に対応する変更を確認します。コミット メッセージは次のとおりです。

次に、ターミナルでコミット ログを表示します。

  • b49c0f91744cb6f863616976c4fb4157c7af4b8c Wi-Fi 接続で USB テザリングを有効にすると、プロンプトが正しくありません。
  • eb47ef919064aff516ced4bbd9d8ade0ed34b107 WiFi ホストポットを初めて有効にするときに USB テザリングのヘルプを表示する
  • 753668be1207baa514be1bbd985f3db2d6317608 ホットストップ通知のバグを修正。

プッシュが失敗する理由は、現在の changeID が eb47ef919064aff516ced4bbd9d8ade0ed34b107 コミットのものと同じであるためです。そのため、現在の変更をバックアップし、753668be1207baa514be1bbd985f3db2d6317608 にハードリセットしてから、バックアップの変更を適用し、最後に追加、コミット、プッシュを続けます。

これで問題が解決することを願っています。

于 2016-09-01T13:19:58.087 に答える
-2

これはそれを行う必要があります:

git commit --amend

変更 ID を削除してから、確認のためにプッシュします。

于 2015-12-02T11:22:19.780 に答える