29

同じブランチに 2 つのコミットが次々とあります。ファイル A への変更を最初のコミットに追加し、次に他のファイルにいくつかの変更を加えてから、別のコミットを行いました。ここで、ファイル A への変更を、最初のコミットではなく 2 番目のコミットに反映させたいと考えています。最もエレガントな方法は何ですか?

4

5 に答える 5

18

この目的を達成するためにスクリプトを作成しました。ここでチェックアウトできます。

スクリプトを使用すると、次のように簡単になります。

mv-changes HEAD~ HEAD fileA
于 2016-01-31T20:28:19.043 に答える
5

それらが小さなコミットであり、コミットが常に git で小さくあるべきである場合、最も簡単な方法は、 git reset HEAD^^それらをもう一度実行することです。これに対する解決策には履歴の書き換えが含まれることに注意してください。これらのコミットを既にどこかにプッシュしている場合は、自分が何をしているのかわからない限り、これを行うべきではありません。

于 2013-03-05T00:51:50.560 に答える
0

おそらくありそうもないことですが、これらのコミットを作成したばかりのイベントでは、2 番目のコミットを取り消してgit reset HEAD^から、最初のコミットに変更を追加しgit commit --amendます。

あなたが先に進み、コミットが過去のある時点であった可能性が高い場合は、リベースが最善の選択肢です。あなたの正確な状況を知らなくても、それをよく説明している参考文献を引用するのがおそらく最善です.

最初と 2 番目のイベントの両方で、履歴の書き換えに関する Pro Git ブックのセクションで、オプションを使用する必要がある場合と注意が必要な場合の両方について説明しています。

6.4 Git ツール - 履歴の書き換え

于 2013-03-05T02:28:08.360 に答える