2011-01-16 14 views
2

中間のマージ(削除、スカッシュではない)を削除し、最後の2つのコミットを新しいブランチに移動したいとします。gitで中間のマージを削除するには?

これは私の現在のgit log --graphgit branch newoneを行い、その後、私は枝tadeとのマージを削除するgit rebase -iを使用して考え

* bbbbbbb - (some time in the future) a later commit on tade (tade) 
* | aaaaaaa - (some time in the future) a later commit on master (master) 
| * | 3a5c453 - (2 hours ago) last commit (HEAD, newone) 
| * | be356d0 - (2 hours ago) previous commit 
|/ | 
| * 65328dc - (3 hours ago) some other commit in branch tade 

と:私はこれで終わりにしたい

* 3a5c453 - (2 hours ago) last commit (HEAD, master) 
* b6c19f1 - (2 hours ago) Merge branch 'tade' into HEAD 
|\ 
* | be356d0 - (2 hours ago) previous commit 
| * 65328dc - (3 hours ago) some other commit in branch tade 

最後の2つのコミットを新しいブランチに移動するにはgit reset --hard HEAD^2を使用します。しかし、私がrebaseをしたとき、それはmasterと| mergeに合併したtadeブランチからのすべてのコミットを示しました。それらを削除することには消極的でした。

良い方法がありますか、それとも先に進むべきですか?

EDIT:意図した状態グラフを更新してより明確にしました。代わりに、マージのbe356d03a5c453をリベースする新しいは(aaaaaaabbbbbbb)をコミット少し良く状態を説明するためにのみ存在している2(私は願っています)

+0

私は本当にあなたの望む結果の垂直線に混乱しています。そこには他のコミットがありますか、ブランチ・タードには、そして...には何の意味もありません。 – Cascabel

+0

現在のHEADに実際のブランチ名を付け、 'rebase -i'をどのくらい正確に実行したかを教えてくれれば助かります。 – Cascabel

+0

申し訳ありませんが、私はgit log --graph出力を使い慣れていません。意図した状態を明確にするためにグラフを変更します。 – Kostas

答えて

1

使用インタラクティブリベースはb6c19f1(すなわちコミットだけ3a5c453一つ下のコミットに移動)。あなたはこのようなものが必要ですその後:

* xxxxxxx - (2 hours ago) Merge branch 'tade' into HEAD 
|\ 
* | yyyyyyy - (2 hours ago) last commit (HEAD) 
* | be356d0 - (2 hours ago) previous commit 
| * 65328dc - (3 hours ago) some other commit in branch tade 

を次に、あなただけの新しいブランチを作成することができます

git checkout -b newbranch yyyyyy 

次にあなたがxxxxxxを削除し、マスターに何かをコミットし、これで終わることができます。

* zzzzzz - new commit on master 
| * | yyyyyyy - (2 hours ago) last commit (HEAD) 
| * | be356d0 - (2 hours ago) previous commit 
| | * 65328dc - (3 hours ago) some other commit in branch tade 
+0

私は対話的なリベースを行うときに、私は2つのコミットの間に(tadeブランチから)大量のコミットを取得します。私はそれらのすべてを下に移動する必要がありますか? – Kostas

+1

'rebase -i 65328dc'を試してください。' 65328dc'と現在のHEADの間の値だけを与えるべきです。 – poke

関連する問題