存在するコミットを引数にして 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) を使用して 再びパッチを適用します。