web-dev-qa-db-ja.com

複数のコミットチェリーピッキング

メインブランチには33のコミットがあり、それらはメッシュになっています。今、私はきちんと記録を維持する必要があります。そこで、機能ブランチを作成しました。これらの33個のコミットを異なる機能ブランチに分類しようとしています。では、一度に複数のコミットを選択して、関連する機能ブランチにコピーすることは可能ですか?また、cherry-pickコマンドを使用して複数のコミットを試みたときに、競合に直面しています。

git cherry-pick A B C

ここで、A、B、Cはコミットのハッシュコードです。

28
Nitu Dhaka

あなたは正しいことをします。あらすじは

git cherry-pick [--edit] [-n] [-m parent-number] [-s] [-x] [--ff] <commit>...

git cherry-pickは左から右へコミットします。好きなように注文できます。競合がある場合、3つの選択肢があります。 git cherry-pick --quit(チェリーピッキングを停止し、ツリーを現在の状態にする)、git cherry-pick --abort(チェリーピッキングを停止し、ブランチを開始前の状態にリセットするgit cherry-pick )またはエディターまたはgit mergetoolを使用してこの競合を解決してから、git cherry-pick --continueを使用してリスト内の次のコミットに移動します。

18
silvio

レコードをきちんと維持する必要がある場合は、トピックブランチを作成してgit rebase -i <commit before the 33rd>、インタラクティブなリベース。コミットを削除する手順に従います。これは、特定の厳密な順序で多数のコミットをチェリーピッキングするよりも簡単なはずです。

6
mockinterface