ゲリット:個人使用時のピット踏破経験あり/Change-Id/Cherry-Pick

背景説明

私は最近 gerrit に触れたばかりで、それを使用する過程での個人的な経験を記録しました (git を使用したことはありますが、gerrit が何であるかはわかりません。ここをクリック: git と gerritの違い)

踩坑①:コミットメッセージのフッターに Change-Id がありません

gerrit プッシュ構成を参照してください。最初の git push レビューでエラーが報告されます:
変更 ID がありません
プロンプト "ERROR: commit xxxx: missing Change-Id in message footer"
git log を実行して送信レコードを表示します:
最新のコミット レコードに Change-Id がありません
最新の送信に変更がないことがわかります-Id, gerrit シナリオ チュートリアルのこのブログを参照してください(Change-Id の不足が最新の提出でない場合は、このブログも参照してください):
git push レビューのエラー メッセージで 2 つのコードを実行します。 (最初の画像のコード セグメントの 2 つの赤いボックスの下にある 2 つのコード)、コマンド ラインで関連するコードを直接選択し、「Shift + Insert」を押してから、Enter キーを押して実行します。次に、git ログを実行します
の結果
。最新の提出物が Change-Id~ を生成したこと

PS: 最初の赤いボックスのステートメントを実行すると、エラーが報告される可能性があります。

subsystem request failed on channel 0
scp: Connection closed

チャネル 0 で失敗したブログ サブシステム要求を参照して解決してください。
「scp -p -P」
と置換する
「scp-O-P」
再度実行すると、エラーは報告されません〜

ピットを踏む②:cherryPick後プッシュエラー

問題の説明と解決策については、gerrit がブランチ Cherry-Pick をマージし、プッシュ後にエラーを報告するブログを参照してください。
作成者の個人的な理解は専門的ではない可能性があります: gerrit は、同じ ChangeId を持つ送信を同じリモート変更にマージします. このリモート変更が既に放棄状態にある場合、新しい送信を受け取ることができず、エラーが報告されます. したがって、この時点で 2 つの解決策があります。

  1. 上記のブログを参照すると、git commit --amend は Change-Id を削除し、新しい変更として送信される新しい Change-Id を再生成します。
  2. 破棄された変更を復元するには、gerrit で復元をクリックします。この時点で、ローカルは通常、この変更を送信できます。

☆☆☆git/gerrit がキラー機能をコミット☆☆☆

著者は問題 (ほとんどがローカルの乱雑な記録) を提出するほど git に精通していないため、「単純で普遍的な」キラー (試行錯誤★▼★):

0リモート ブランチに新しい変更がある場合は、ローカルの変更を一時的に保存するために git stash を実行してから、リモートの最新コードをプルするために git pull を実行してから、ローカルの変更を復元するために git stash pop を実行してください (競合がある場合は処理してください)。 )、要するに、ローカルに最新のリモートコードが含まれていることを確認する必要があります(このコードは、後でリモートからプルされたコードを上書きするために使用されるため
) .gitフォルダと自動インストール・生成(node_modulesフォルダなど)を別のフォルダに新規作成 ②
提出するプロジェクトフォルダ配下のファイルを全て削除 ③
提出するプロジェクトフォルダ内のリモートコードを再プル
④プロジェクトフォルダを上書き新しく作成されたフォルダにファイルをバックアップして提出する 対応するファイル (うーん... もう 1 つ言わせてください。この時点でリモートに最新の変更が加えられているかどうかに注意してください)
;

参考URL

[1] git と gerrit の違い
[2] gerrit プッシュ構成
[2] gerrit シナリオ チュートリアル
[3] gerrit 送信に Change-Id がない
[4] gerrit がブランチ Cherry-Pick をマージした後のプッシュ エラー
[5] gerrit の Change-Id を理解する
[ 6]サブシステム要求がチャネル 0 で失敗しました

おすすめ

転載: blog.csdn.net/qq_36604536/article/details/124928815