我添加了
media/
build/
in.git / info / exclude,然后删除(git rm)两个目录。我需要在exlude文件而不是.gitignore中使用这些规则,因为我只希望该repo忽略它,而不是祝福的repo或任何其他repo。无论如何运行
git status
仍列出删除两个目录的所有内容。我该如何防止这种情况?
修改
这就是我所拥有的; github上的私人仓库,我的本地安装,一些同事拥有自己的本地安装,还有一台服务器。该站点是Django站点,因此为了提高性能,静态媒体文件与实际的Django安装保持独立。
但是,在本地我们在Django根目录中有媒体文件。因此,媒体目录也在github的祝福仓库中。但是服务器应该忽略该目录,这是我试图通过将目录添加到排除文件来完成的。但即使它在那里,也似乎没有被忽视。
adymitruk关于构建文件夹是对的,我已将其添加到我的常规.ignore文件中。
答案 0 :(得分:4)
你说你删除了这两个目录 - 所以你git rm
它们并提交它们以便它们从repo中删除(unversioned)而不是只删除你的工作目录。因为,只要它们被版本化,git status
仍将显示对这些目录的修改(在这种情况下是删除),而不管忽略。
答案 1 :(得分:1)
师父不是克隆人。它是回购中的一个分支。我猜你指的是一个有福的存储库。
有很多方法可以实现这个目标:
创建一个显式删除文件夹的分支。由于这些文件夹中的更改,后续从其他分支到此分支的合并将产生冲突。使用带有“ours”选项的递归策略。你的分支看起来像你想要的那样。
制作复杂的涂抹/清洁脚本。我不会走这条路。
永远不要对这些文件进行更改。
更大的问题是您的工作流程。我看到了2个问题:
您将媒体作为存储代码的存储库的一部分。这通常涉及大文件,在克隆,签出等时是一个很大的负担。考虑使用该目录的子模块,只在需要访问媒体时填充它们。
“Build”听起来像是aritfacts?如果它们是构建工件,则它们不属于源存储库。使用您拥有的任何部署方案/工具单独管理它们。您可以随时从源重新生成它们。依靠标记来标记构建的内容/何时/为什么。
我对你的工作流程做了很多假设。但希望这会以某种方式帮助你。
干杯