私はブランチでgerritレビューからチェリーピックをしました。 gerritコードレビューでは、2つのパッチセットがあり、1つ前にパッチを選んだので、2つ目のパッチセットを実行したいのですが、競合があります。どうすればすべての変更をgitに強制できますか?ありがとう!
チェリーピッキングのコミットの変更を常に優先するように指示できます。
git cherry-pick commitish --strategy-option theirs
commitish
は、コミットのSHA-1ハッシュ、またはそのブランチの最後のコミットの場合はbranch-name
、その前のコミットの場合はbranch-name~1
になります。
逆にしたい場合は、以下を使用します。
git cherry-pick commitish --strategy-option ours
--strategy-option
の省略形は-X
(pper case X)です。
git cherry-pick -X theirs <commit-hash-you-want-to-force-cherry-pick-from>
私の通常のワークフローは次のとおりです。
私がmasterを使用していて、コミットしたばかりだと仮定します。
git cherry-pick -X theirs 5cf3412
次のようなものでブルートフォースできます。
git show cb1e6a:path/to/filename > path/to/filename
git add path/to/filename
git commit
しかし、もっと簡単な方法があると確信しています。
既に競合状態にある場合は、単に
# add only conflicting files here
git checkout --theirs path/to/file
git add path/to/file
git cherry-pick --continue