一連のパッチの並び替えや選択

存在するコミットを引数にして git-cherry-pick(1) コマンドを 実行すると、そのコミットが行なった変更を適用し、新しいコミットを 作成することができます。従って、例えば、"mywork" が "origin" の先頭の 一連のパッチを指しているなら、以下のようにすることができます:

$ git checkout -b mywork-new origin
$ gitk origin..mywork &

そして、gitk を使用して mywork ブランチのパッチの一覧を表示し、 cherry-pick を使用して mywork-new にそれらを(可能なら異なる順番で)適用し、 可能であるなら git commit —amend を使用してそれらを修正します。 git-gui(1) コマンドは個々の選択した diff ハンクを索引に含めるかどうかを 選択するのに役に立つかもしれません。(diff ハンクを右クリックし、 "Stage Hunk for Commit" を選択します)

もう一つの技術は git format-patch を使用して一連のパッチを作成し、 パッチの前の状態にリセットすることです:

$ git format-patch origin
$ git reset --hard origin

そして、修正し、順番を並び替え、取り除き git-am(1) を使用して 再びパッチを適用します。