0

私が働いている 2 つのブランチがdevelopありstagingます。1 つ目は開発用で、2 つ目はデプロイメント用です。これは基本的に、ダミー データをデータベースに追加するテスト デプロイメントの開発コードです。

developAdobe Photoshop ファイルなど、グラフィック デザインからいくつかのファイルをブランチに保管しています。確かに私は自分のブランチにそれらを必要としないか、望んでいないのでstaging、次の行を.gitignoreファイルに追加しました (これは、これらすべてのファイルを含むサブフォルダーです)。

...
/gfx_material/

そしてstaging、不要なファイルに対して次のコマンドを実行して、ブランチからファイルを削除しました(この回答にあります):

git rm --cached

現在、developブランチでは、/gfx_material/フォルダー内のファイルに変更が加えられています。からファイルをマージしようとすると、次のエラーが表示developされます。staging

$ git merge develop
CONFLICT (modify/delete): gfx_material/path/file.psd deleted in HEAD and
modified in develop. Version develop of gfx_material/path/file.psd left in tree.
Automatic merge failed; fix conflicts and then commit the result.

なんで?このファイル (およびそのフォルダー内の他のファイル) は無視されるべきではありませんか?

4

1 に答える 1

1

ブランチでそれを削除している間にstaging、誰かがブランチでそれを変更したようですdevelop(それmodify/deleteがエラーに表示されます)。誰も触らなければ大丈夫だったのに、誰かが触ってしまったので、Git は取るべき正しい行動方針を知りません。

また、ファイルを削除した可能性がありますがstaging、それは開発では行われませんでした。git をデプロイ ツールとして使用しようとしていて、不要なアーティファクトをブランチから削除したいようです。この方法で Git を使用しないことをお勧めします。むしろ、スクリプトを作成して関連する部分を取得し、それらをサーバーにデプロイする必要があります。Git をそのように使用するのは (簡単に感じるので) 良いことかもしれませんが、そうすると PSD ファイルを削除するなどの作業を開始し、開発/マージの頭痛の種になります。

于 2013-10-21T14:33:26.397 に答える