0



Gitには次の履歴があります。

(master) A - B - C
                  \
(dev)              D - E - F - G - H - I

私はこのようなものを作成したいと思います:

(master) A - B - C
                 | \
(patch_1)        |- E' - G' (G' shouldn't contain the changes happened at F commit)
(patch_2)        |- D' - F' (F' shouldn't contain the changes happened at E commit)
(dev)            |- D - E - F - G - H - I

このようなものを作成することは可能ですか?

それが不可能な場合は、次のオプションのどちらが優れています
か? 1. コードを最初から書き直しますか?
2. これらすべてのコミットを「ナイス」で大きなコミット メッセージで 1 つにまとめますか?

4

1 に答える 1

0

私が考えられる解決策の 1 つは、git cherry-pick を使用することです。

  1. dev ブランチに変更し、E、G、D、F の SHA-1 コミットを取得します (git log --oneline を使用)。

  2. master ブランチから patch_1 ブランチを作成し、E, G の SHA-1 を引数として git cherry-pick コマンドを発行します。

  3. master ブランチから patch_2 ブランチを作成し、D、F の SHA-1 を引数として git cherry-pick コマンドを発行します。

于 2013-09-20T09:41:39.073 に答える