6

以下で強調表示されているコミットを検討してください。

GITK

現在の議論では、次のようにコミットを参照します: コミット 1: ユーザー設定から言語設定を読み取る コミット 2: [POC] レビューしない

コードレビューには Gerrit を使用します。コミット 1 とコミット 2 の両方がレビュー中であり、マージされていません。私はコミット 2 でコードを必要とするコミット 1 に取り組んでいるため、それに基づいていなければなりませんでした。これらは私が使用したコマンドです:

  1. Cherry Pick Commit 2. その変更のために Gerrit から取得する cherry-pick コマンドを使用します。 チェリーピックコミット2

  2. 作業に必要な変更を加え、コミット 1 になった変更をプッシュします。最初にコミット 1 をプッシュしたとき、それはコミット 2 のパッチセット 8 に基づいていました。

コミット (コミット 1) に対するレビュー コメントを受け取るたびに、新しいパッチ セットを Gerrit にプッシュします。ただし、最終的にマージする場合は、その親の最新のパッチセットにある必要があります (コミット 2)。私が今それを行う方法は次のとおりです。

  1. git チェックアウト working2
  2. git reset --hard remotes/origin/head
  3. Cherry-pick Commit 2 ---> これにより、Commit 2 の最新バージョンが取得されます
  4. チェリーピックコミット1
  5. git push オリジン working2:refs/for/head

上記のすべてを行わずに Commit 2 の最新のパッチセットを入手する方法はありますか? おそらく、ある種のインタラクティブなチェリーピックまたはリベースですか?

4

1 に答える 1

8

コミット1をFETCH_HEADにリベースするだけです。working2ブランチにいる間、

$ git fetch ssh://user@gerrit.dev.xyz.net:29418/management-console refs/changes/26/11926/11 
$ git rebase -i FETCH_HEAD

コミット2のコミットメッセージのある行を削除します(通常は最初の行)。これで、コミット1が最新のコミット2の上に追加されます。インタラクティブなリベースに慣れていない場合は、 こちらをご覧ください。

于 2012-07-31T15:57:26.553 に答える