0

我有两个我正在工作的分支机构,develop并且staging. 第一个用于开发目的,第二个用于部署,它基本上是测试部署中的开发代码,我将虚拟数据添加到数据库中。

我在分支中保留了一些图形设计文件develop,例如 Adob​​e Photoshop 文件。当然我不需要或不希望它们在我的staging分支中,所以我将以下行添加到我的.gitignore文件中(它是一个包含所有这些文件的子文件夹):

...
/gfx_material/

我已经通过对不需要的文件(在这个答案中找到staging)执行以下命令从分支中删除了这些文件:

git rm --cached

现在在develop分支中已经对文件/gfx_material/夹中的文件进行了修改。当试图将文件从合并developstaging我得到错误:

$ 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 回答