中間のマージ(削除、スカッシュではない)を削除し、最後の2つのコミットを新しいブランチに移動したいとします。gitで中間のマージを削除するには?
これは私の現在のgit log --graph
:git 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:意図した状態グラフを更新してより明確にしました。代わりに、マージのbe356d0
に3a5c453
をリベースする新しいは(aaaaaaa
とbbbbbbb
)をコミット少し良く状態を説明するためにのみ存在している2(私は願っています)
私は本当にあなたの望む結果の垂直線に混乱しています。そこには他のコミットがありますか、ブランチ・タードには、そして...には何の意味もありません。 – Cascabel
現在のHEADに実際のブランチ名を付け、 'rebase -i'をどのくらい正確に実行したかを教えてくれれば助かります。 – Cascabel
申し訳ありませんが、私はgit log --graph出力を使い慣れていません。意図した状態を明確にするためにグラフを変更します。 – Kostas