2009-08-11 12 views
0

私のgitコミットはちょっと混乱しています。 Git:squash all then「コミットをいくつか」コミットします

のは、私がコミット1でこれらのファイルがあるとしましょう: upload.py、 moderate.py、 upload.html、 moderaion.htmlを

どのように私はこのような2回のコミットでそれを分割することができますか? アップロード: upload.py、 upload.html

節度: moderate.py、 moderaion.html Xはコミットの親である

答えて

1

あなたは、コミットが既に乱雑であることを意味しますが、コミット自体が「アトミック」で間違った順序である場合は、git rebase --interactiveを使用して正しい順序で入れてからスクラッシュすることもできます。これはあなたのためのものをより簡単にするかもしれません。

すでにコミットがいくつかの領域に接触していて、それらを分割したい場合は、git rebase -iも役立ちます。また、Bart's blogの例を見てください。

+0

ブログにはすべての答えがありました。ありがとう – Cedric

2

まずあなたがgit rebase --interactive Xと一緒にすべてのコミットをつぶすことができます(あなたはスカッシュしたい)。その後、git rebase --interactive Xを2回実行しましたが、今度はgit-rebase's manualで説明されているように、押しつぶされたコミットを分割します。

リベースを開始する前に、現在のヘッドコミットをマークダウンすることをお勧めします。そのハッシュを書き留めるか、新しいタグ/ブランチを作成します。そうすれば、簡単にすべての変更を元に戻してやり直すことができます。

+0

デフォルトでは(HEAD @ {1}、@ {1}など)、reflogがあるので、タグ付けまたはハッシュダウンの必要はありません –

+2

しかし、@ {1}、@ {2}などであるかどうかを調べる必要がない場合は、頭を修正する操作をたくさんした後では簡単です。 –

関連する問題