2016-04-13 19 views
0

一般的なgit使用上の間違いや、以前のrebaseでこれらの競合がすべて解決された場合にrebaseが前のrebaseからの競合を繰り返す理由は何ですか?
さらに、リベースは競合の解決方法よりも優先されますか?例えばrebaseは、コード内の通常のgit衝突括弧内の2つの可能なコードスニペットの間で厳密な選択をしたいのですか、または>>>,<<<の間のすべてを削除するのと同じ運賃ですか?競合を解決するために両方のコードを削除すると、後の競合を適切に解決するためのrebaseの機能に影響が出るのではないかと不思議です。Git Rebaseが最後のRebaseからの競合を繰り返します。

さらに詳述: 私はmasterブランチとdevブランチを持っています。 devブランチ私はいくつかの時間のために作業してきましたので、さまざまなコミットの数が100sでかなり大きくなっています(私は... devをより頻繁にmasterにする必要があります)。 devブランチ自体には、いくつかの小さなブランチがあり、そこから切り取られてから、マージされました。devブランチとマージされ、決してmasterブランチ(それは私が覚えていることがあります)と切り離されました。私はmasterブランチに1時間前にdevブランチをrebasedしました。私は以来devブランチのいくつかの変更を加えて、masterに再度rebaseしたいので、私はマージの準備をすることができます。その1週間のウィンドウでも、masterブランチに対して非常に小さな変更がありましたが、コードファイルは重複しません。しかし、devmasterにリベースすると、1週間前にリベースしたときと比較して、現在のリベースを試みるときにgitで生成されたのと同じ競合が発生しています。

ありがとうございます!

答えて

4

一般的には、通常のことです。マージするよりもむしろこのようにリベースすると(例えば、マスターをdevに)、同じパッチを再生すると同じ競合が発生する可能性があります。

git rerereを使用して、これがワークフローの一般的な問題である場合は、解像度を覚えておくことができます。

関連する問題