2017-02-14 11 views
2

私は3つのブランチを持っています:メインブランチA、ブランチBはあるポイントで分岐しています。ブランチCはブランチです。 ブランチには新しいコミットがあり、ブランチBにはベースとしてAからのコード、支店Cは、これは私の現在の状況であるB. の上にする必要があります:Git rebase複数のブランチ

| 
    /
    | C 
    | 
    | 
    /B 
| 
| 
| 
| 
A 

をだから、最初、私は:

| | | 
| |/
| | C 
|/B 
| 
A 

これは私が達成しようとしているものですした:

B: git pull --rebase origin B 
git checkout C 
git rebase B 

ので、分岐CがBの

の上にあるそれから私は、分岐Aに同じでした:

A: git pull --rebase origin A 
git checkout B 
git rebase A 

は、それから私は、分岐Cに切り替え、そして私はからの変更を持っていけないことに気づきましたA(CがBの上にあり、BがAの上にある場合は、CがAからの変更を意味すると考えました。逆の順序で行った方がよいでしょう。

今私はブランチBを分岐させました(恐らくリモートにプッシュする必要があります)。

Cブランチで再びgit rebase Bにできますか?私は何かを失うposibilityはありますか?すべてのブランチがリモートにプッシュされることに注意してください。

答えて

0

--ontoオプションはあなたが探しているものです。

git checkout b 
git rebase --onto a b^ 
git checkout c 
git rebase --onto b c^ 
0

あなたはBをリベースによって開始する必要がありましたし、その後に行われてきたはずです何C.は次のとおりです。

# STEP 1 
A: git pull --rebase origin A 
git checkout B 
git rebase A 

# STEP 2 
B: git pull --rebase origin B 
git checkout C 
git rebase B 

そして、あなたが考えてみれば、それはかなり明白です。

これを修正するには、Aが良好でBが良いことがわかります。 Cだけが上に移動する必要があります。

を助け

git checkout C 
git rebase --onto B A C 

・ホープ

関連する問題