2016-05-24 3 views
1

私はインタラクティブなリベースを開始し、 "歴史の後半"から2つのコミットを選んで "履歴の早い方"にプッシュしようとしました。だから私はやろうとしている:1つのrebase'dを保つために、次のものをコミットして尋ねますか?

E<-D<-C<-B<-A =>E<-B<-A<-D<-C

最初のコミットの動き(B)は仕事をマージ関与が、それは今行われています。だから、それは良い見え、適切な場所にあります。しかし、私がしたときrebase --continue私はAのための紛争のトンを得た。私は気づいていないDに深い依存があることを認識し、私はこのように移動しようとしてはいけません。

しかし、私はrebase --abortをやりたいとは思わないが、これはBでの作業が良いからだ。そして、それがAを完全に投げることを意味するなら、私は--skipにしたくありません。 : -/

私が求めているAの進行中のマージの現在の惨事を忘れてしまい、Bが私の唯一のリクエストであるかのように振る舞いますだから今、私はリベースを完了してもらうことを目指しています:

E<-B<-D<-C<-A

+2

短いバージョンはできません。 Rebaseは*コミットをコピーして、元の 'E <-D <-C <-B <-A'チェーンはまだそこにあり、あなたの新しい' E <-B'チェーン・ソー・ファーが* new *ブランチ上に構築されています。リベースを終了すると、古いチェーンが破棄され、ブランチラベルが新しいチェーンに移動します。 rebaseを中止すると、新しいチェーンが完全に削除され、古いチェーンだけが残ってしまいます。[chorobaの答え](http://stackoverflow.com/a/37417645/1256452)、これは新しいチェーン・ソー・ファー、行く方法です。 – torek

答えて

3

あなたも、リベースの途中で新しいブランチを作成することができます。ちょうど

git checkout -b only-b 
git rebase --abort 
git checkout only-b 
+0

ええと...私はそれの後に何をするだろうか?私はBをマージし、元のチェーンをunmerged-Bでコミットしましたが、それでもまだ両方のブランチは独立しています。 – HostileFork

+0

@HostileFork: 'git checkout original'と' git rebase E-commit -onto only-b-commit'ができるようになりました。 – choroba

+0

リベースのコミットチェーンを再生すると、マージ編集後に互いに競合する2つのバージョンのBが表示されませんか? – HostileFork

関連する問題