为Django网站创建一个.gitignore文件。

17

我准备将我已经在本地环境中运行的Django项目推送到Bitbucket存储库,以便我可以在公共服务器上运行它。目前,我感觉有很多在本地开发中创建的文件需要添加到.gitignore中。

我在Github上找到了这个.gitignore文件,但我仍然觉得它缺少一些东西,例如似乎没有从每个迁移文件夹中删除文件。还有很多我不知道它们是干什么的 - 我明白并不是所有的都是必需的。任何建议都将不胜感激。


1
你认为在公共服务器上不需要运行迁移吗? - Alexander Tyapkov
不,我指的是migrations文件夹中的迁移文件。当我开始开发时,我需要它们为空,以便重新开始。 - Zorgan
3个回答

21

您可以考虑使用专为Django项目量身定制的 .gitignore 文件。

同时,请注意,如果您已经添加并提交了一个文件夹的内容,在 .gitignore 文件生效之前,您需要先将它们删除。

git rm --cached -r afolder/

然而,默认情况下 migration 不会被忽略。 (你可以跳过一些迁移步骤)
正如Ora在评论中指出的那样,请参阅 "我应该将Django迁移文件添加到.gitignore文件中吗?"。

因此,请勿将 migration/ 添加到您的 .gitignore 文件中。


4
您不应忽略迁移。请参见此处:https://dev59.com/V14c5IYBdhLWcg3wVpFI - Ora
@Ora 我知道:我正在编辑答案以反映这一点。 - VonC
抱歉,我有点困惑 - 你是说不要在.gitignore中添加任何模式来阻止migrations内容,所以只需在将它们推送到仓库后将其删除?通过使用git rm --cached -r migration/?@VonC - Zorgan
你根本不应该删除它们。它们是你代码库的一部分。 - Daniel Roseman
@Zorgan 是的,请不要删除它们。我的评论更多地是针对.gitignore似乎“无效”的情况。我已经相应地编辑了答案。 - VonC

3
最好的例子我发现在这里:https://djangowaves.com/tips-tricks/gitignore-for-a-django-project/ 这不是我的工作!!! 我不想因别人的好收集而得到信用! 里面的东西并非都相关。 不过作者有很好的文档记录,你可以把它精简到你需要的内容。
我还要补充一点:
**/migrations
*.DS_Store
**/__pycache__
**/.DS_Store

6
迁移应该被打包发送,为什么你要忽略这些? - Yash Kumar Verma

0

我其实不知道你是如何添加 migrations 目录的。如果你已经将这些目录提交到了 Git 中,那么只需将 migrations/* 添加到 .gitignore 文件中并删除所有的 migrations 文件夹。然后提交并推送更改。这样一来,除非你强制暂存和提交,否则你将永远不会在 Git 中看到任何 migrations 的更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接