2017-02-23 22 views
1

私は本当に変わったことをしました。そして、何を知っているかわからない。git、merge、Gerritをリベースできません。

私はヘリットで働いて、それはちょうどそれが原因で競合のマージすることはできませんことを私に示したが、矛盾があったが、その代わりに、私はそれが原因で外れHEAD

であったと私は本当にランダム行うことを始めたと思います私はリベースしようとしましたが、マージ競合を得たので、最終的に私は次のログに

http://imgur.com/a/FnJqI

を得た。これは、ある事は、まずI 1にcherry-picked 3コミット、およびIマスターブランチが再び外れてしまった以上、私はその違いを理解していないのでN mergerebase

あなたは(1本の直線に)歴史を修正するために私を助けるとの質問に答えてもらえ:

デフォルトのgitがfast-forwardので、結果のルックスを使用することであればmergerebaseの違いは何ですかリベースとまったく同じです。そして私の場合は、マージ競合のためにrebaseを行うことができませんでした。だからrebaseの目的は何ですか?

答えて

0

Rebaseは、可能であれば、fast-forwardを使用するため、mergeとは異なります。例:masterから新しいブランチを作成し、新しいブランチにコミットし、masterにコミットしないで、mergeの変更をマスターに戻したい場合:gitはこれがあなたと同じであると考えるでしょうとにかくmasterにコミットしました。この状況でrebaseを使用すると同じことが考えられます。

あなたは枝やgitの両方に変更が早送りに使用することはできませんしていたときに、本当の楽しみが始まります。その後、mergeは、親が自分の枝の両方であなたの最後のコミットとなりますコミットれる新しいを作成し、rebase意志ますrebaseしようとしているブランチのベースを他のブランチのヘッドに移動しようとします。 (1本の直線に)あなたの歴史を「修正」するので

、あなたのマージを元に戻す必要がある(ヘッドと表記)と、あなたのmasterブランチにごRebasingブランチをリベースする必要が

git checkout Rebasing 
git rebase master 

あなたは「まだあなたが必要な限り多くの時間を解決し、

git rebase --continue 

を継続する必要があること、競合を持っているでしょう。

関連する問題