2011-12-29 9 views
14

git-subtreeの使用をテストして、ライブラリリポジトリをより大きなプロジェクトにマージします。それは原則として素晴らしいようです。ローカルで変更されていないファイルにマージし、ライブラリのレポで行われた変更のためだgitは変更を加えずにマージ競合を報告します(空の行はgit-subtreeを使用します)

<<<<<<< HEAD 
======= 
An inserted line from the lib repo 
>>>>>>> 4d348903449ebb584ab224cb34c6038fbf6b352d 

:私が行うとき、時々私はこのような競合をマージ取得「Gitのサブツリーを引っ張ります」。紛争、しかしとして報告地域をマージするように、これらの報告はgitうなぜ

<<<<<<< HEAD 
Another inserted line 
======= 
>>>>>>> 4d348903449ebb584ab224cb34c6038fbf6b352d 

:私はローカルプロジェクトレポではなく、マージされたサブツリーの一部であるファイルに行を追加したり、別の例として、紛争は空ですか?どのような方法でそれを防ぐには?

これら

は解決するのは簡単ですが、それは共有作業を保持するために

+0

(Linux、Windows、Mac) – knittl

+0

ローカルに変更されたファイルにマージされたバージョンよりも日付が変更されていると考えられます(2番目の例)。 –

答えて

-3

使用サブモジュールのgit-サブツリーのワークフローを台無しに。あなたが調整される必要がある共有されたプロジェクトと共有されていないプロジェクトで多くの作業を行う場合、git-slaveがあります。行末のストレージ格差はなくなります。

+0

downvoteのコメントを追加してください。 –

+0

サブモジュールの使い方ではなく、git-subtreeの使用について尋ねたので、Downvoted。そして、これが行末と関係があるという証拠はありません。 –

+0

はい。私は誤解しました。 –

1

根本的な問題の解決策ではなく、むしろその軽減策です。
git merge -Xignore-space-change を使用すると、コミットの領域の変更を無視できます。

おそらく、行末に問題があります。あなたが実際にそれらをコミットする前に変更を確認するために

$git merge -Xignore-space-change --no-commit --no-ff $BRANCH

:あなたは、マージで--dry-run代替(git merge--dry-runオプションがありません)してみてください。

関連する問題