2016-07-01 3 views
0

バージョン管理のgit-flowワークフローモデルに従っています。フィーチャーブランチで作業している間に、他の人が他のフィーチャーブランチをマージして、プロジェクトのいくつかのツリー変更を含むブランチを開発しました。今私の機能ブランチでプロジェクトの構造は、例えば(developブランチの構造とは異なる:私の機能ブランチでは、私はにあるファイルで働いています、Gitでツリーの競合を処理する最良の方法は何ですか?

「com.translators.components」

。しかし、ファイルが置かれている開発ブランチで、

"modules.com.translators.components"

)。開発ブランチから引っ張ってみると、多くのファイルの場所が変更されているので、gitは非常に多くの競合を示しました。

+1

通常のrebaseeは、すべてのコミットを1つのコミットにマージすることはありませんが、これはスカッシュでのみ発生します。リベース処理は実際にコミットします。しかし、これを除いて、マージ競合を解決するのはどうですか?他のマージが合法であると仮定すると、これらの競合を回避することはできません。 –

+0

ありがとうTim。私はそれを修正した。今のところ私は競合を解決して手動でマージしています。しかし、紛争の数は膨大です。私はちょっとした努力でこの問題を解決する方法を模索しています。 –

答えて

1

プロジェクト構造が変更されたため、自動的にマージすることは非常に困難です。自分で手動でマージする必要があります。以下のコマンドが役に立ちます。

1)git fetchを実行すると、ローカルの作業ツリーにマージせずにリモートの変更を取得できます。

2)コマンドは、git checkout master -- component.javaとして、他のブランチから作業ツリーにファイルをコピーします。

3)git diff branchA:branchB --name-statusは、2つのブランチ間のステータスを含むファイル名リストを表示します。

ローカルの作業ツリーを再編成して、手動でリモート修正を実行します。

+0

ありがとうございます。私はこれらのコマンドについて知らなかった。彼らは役に立つと思われる。 –

関連する問題