2011-01-28 12 views
9

私はmasterから分岐し、extra_workというブランチを作成しました。それから、いくつかのファイルを削除することを含めて、マスターに多くの変更を加えました。後で、ブランチ 'extra_work'をマスターにマージしようとしたとき、それは完全にマージされていません。 マスターで削除したファイルは追加しません。元に戻した作業はすべて元のマスターに戻したいと思っています。 これらの2つのブランチをどのようにマージすると、私の 'extra_work'ブランチのすべての余分なファイル/作業がマスターにマージされます。 ありがとうGit Merge - リモートブランチからのすべての変更をマージしない

答えて

1

私は大きなリファクタリングを行っている間に同じ問題を非常に最近にしました。私はmasterからextra-workにrebachすることによって、git rebaseを実行して問題を解決しました。私はこの全部を完全に理解していませんが、合併はひどく(あなたの経験のように)行きましたが、この特定の方向へのリベースは非常に簡単でした。リベースのgit book:http://book.git-scm.com/4_rebasing.html

12

extra_workブランチをmasterにリベースしてください。これにより、extra_workブランチを分岐した状態に戻し、masterからextra_workにコミットを適用します。その後、extra_workからすべてのコミットを再生します。その後、git logを調べると、ブランチの履歴にさらにmasterのコミットが表示されます。 masterに問題なくマージできるはずです。

git rebase master 
+1

私が聞いたリベースの最良の(すなわち、最も簡単な)説明。乾杯。 –

+0

Rebaseは階層の最上位から下に向かってどのように変更を渡すべきかを示し、マージはそれらが上向きに戻る方法です。 https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/ – CrandellWS

関連する問題