0

変更をリモート サーバーにプッシュしようとして、「change closed」エラーが発生しました。これは、プッシュしようとしている変更 ID が、既にプッシュされた以前の変更と同じであるためです (なぜ同じなのかわかりません)。 .git/hook を使用して新しいコミット メッセージを生成するには、新しい commit-msg を生成しますが、私の変更 ID は同じままで、まだプッシュできません。新しい変更 ID が生成されない理由についての入力はありますか?

<username:promt>git push ssh://repo.company.com:29418/platform/vendor/com-proprietary/radio HEAD:refs/for/master
Counting objects: 1852, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (688/688), done.
Writing objects: 100% (809/809), 1.37 MiB, done.
Total 809 (delta 678), reused 177 (delta 95)
remote: Resolving deltas: 100% (678/678)
remote: Processing changes: refs: 1, done    
To ssh://username@repo.company.com:29418/platform/vendor/com-proprietary/radio
 ! [remote rejected] HEAD -> refs/for/master (change 219386 closed)
error: failed to push some refs to 
'ssh://username@repo.company.com:29418/platform/vendor/com-proprietary/radio'

以下を使用して変更IDを生成しようとしました

cd .git/hooks
scp -p -P 29418 username@repo.company.com:hooks/commit-msg .
cd ../..
4

2 に答える 2

1

変更IDを生成するために実行するコマンドは、コミットフックをリポジトリにコピーするだけでした。今、あなたはするべきです

git commit --amend

メッセージから既存の変更IDを削除すると、コミットフックによって新しいIDが作成されます。コミットフックは、以下を使用してchange-idを作成します。

  • コミットされているツリーのSHA-1
  • 親コミットのSHA-1
  • 作者の名前、メールアドレス、タイムスタンプ
  • コミッターの名前、メールアドレス、タイムスタンプ
  • 提案されたコミットメッセージ(Change-Idが挿入される前)

これらのいずれかを変更すると、別のIDを取得します。もちろん、コミットメッセージを編集するのが最も簡単です。

于 2013-01-20T19:34:58.647 に答える
1

! [remote rejected] HEAD -> refs/for/master (change 219386 closed)

変更が放棄された ( Gerrit WebUIの変更を最後の変更から復元して再試行する) か、既に送信/マージされている (新しい変更として) ようです。pushpushcommit

于 2013-01-20T06:13:03.597 に答える