私は現在、私が取り組んでいる2つのブランチを持っています。ソフトウェアの更新のために、私は完全にフォルダstructreを変更しなければなりませんでした。したがって、私は両方のブランチでファイルを移動します。今私は自分の作業ブランチを私のマスターブランチにマージしたいという要望に達しました。git - 両方のブランチで同じファイルを追加すると、奇妙なマージ競合が発生する
問題は、ファイルが1つのブランチ(added by them
またはadded by us
)だけで追加されたことを示すマージの競合があることです。問題は、ファイルがで追加されており、両方ともブランチであることです。
たとえば、テクスチャはtextures/texture1.png
です。マスターブランチはちょうど正しい場所に移動しました(misc/textures/texture1.png
の前)。作業ブランチはそれを正確に同じ場所に移動し、後で編集しました。このファイルのマージ競合は言う:
added by us: textures/texture1.png
点は、これは私が望んないファイルであるということです!私は他のブランチからのファイルが欲しい!
私は
git checkout --theirs textures/texture1.png
は私が
error: path 'textures/texture1.png' does not have their veresion
取得んが、このファイルがが存在しない場合は!私は最近それを追加しました!そしてそれが私が望むファイルです
どのようにこれらの競合を解決しますか?
(詳細は、必要に応じて!)
サイドノートを:gitのは非常にあなたの両方がファイルを名前を変更することを伝えることはできませんgitは動的な名前の変更を検出するため、ファイルを編集しましたが、ここではそれほど問題はありません。私は "リネームファイル"のコミットと "リネームされたファイルの変更"を分け合わせることを実験していませんでしたが、それらを別々にすることは、gitがそれを "把握する"チャンスを増やすと信じています。それは特に、 "ヘルパーブランチ"テクニック@mnagelで説明されています。 – torek