从 pythonanywhere 添加/提交时,将 `__pycache__` 保留在我的存储库之外
Posted
技术标签:
【中文标题】从 pythonanywhere 添加/提交时,将 `__pycache__` 保留在我的存储库之外【英文标题】:Keeping `__pycache__` out of my repository when adding/committing from pythonanywhere 【发布时间】:2018-03-07 19:42:22 【问题描述】:我在本地 win7 机器上构建了一个 Web 应用程序。我用 pycharm 做的,用 git 作为版本控制。我是个 git 新手。
我将存储库放在 github 上,以便我可以将 webapp 暂存到我的 pythonanywhere 服务器。
在 pythonanywhere 方面,我对各种文件进行了一些小的编辑。我想将这些更改提交回存储库。
(udemy) 10:44 ~/keystone (master)$ git commit -m "got it running on pythonanywhere staging"
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
modified: keystone/settings/base.py
modified: keystone/settings/local_postgres.py
modified: keystone/settings/staging_straits.py
deleted: p0150_1.pdf
Untracked files:
crapboard/__pycache__/
crapboard/migrations/__pycache__/
crapboard/templatetags/__pycache__/
keystone/__pycache__/
keystone/settings/__pycache__/
no changes added to commit
我想将三个修改过的文件和一个删除文件提交到存储库。
原来如此
(udemy) 14:03 ~/keystone (master)$ git add --all
(udemy) 14:03 ~/keystone (master)$ git commit -m "staged to pythonanywhere"
[master ac6bb7e] staged to pythonanywhere
27 files changed, 23 insertions(+), 115 deletions(-)
create mode 100644 crapboard/__pycache__/__init__.cpython-36.pyc
create mode 100644 crapboard/__pycache__/admin.cpython-36.pyc
create mode 100644 crapboard/__pycache__/apps.cpython-36.pyc
create mode 100644 crapboard/__pycache__/forms.cpython-36.pyc
create mode 100644 crapboard/__pycache__/models.cpython-36.pyc
create mode 100644 crapboard/__pycache__/pdf_views.cpython-36.pyc
create mode 100644 crapboard/__pycache__/urls.cpython-36.pyc
create mode 100644 crapboard/__pycache__/views.cpython-36.pyc
create mode 100644 crapboard/migrations/__pycache__/0001_initial.cpython-36.pyc
create mode 100644 crapboard/migrations/__pycache__/0001_squashed_0005_auto_20170921_2154.cpython-36.pyc
create mode 100644 crapboard/migrations/__pycache__/0002_auto_20170909_1137.cpython-36.pyc
create mode 100644 crapboard/migrations/__pycache__/0003_auto_20170912_2029.cpython-36.pyc
create mode 100644 crapboard/migrations/__pycache__/0004_problem_author.cpython-36.pyc
create mode 100644 crapboard/migrations/__pycache__/0005_auto_20170921_2154.cpython-36.pyc
create mode 100644 crapboard/migrations/__pycache__/__init__.cpython-36.pyc
create mode 100644 crapboard/templatetags/__pycache__/__init__.cpython-36.pyc
create mode 100644 crapboard/templatetags/__pycache__/crapboard_filters.cpython-36.pyc
create mode 100644 keystone/__pycache__/__init__.cpython-36.pyc
create mode 100644 keystone/__pycache__/urls.cpython-36.pyc
create mode 100644 keystone/settings/__pycache__/__init__.cpython-36.pyc
create mode 100644 keystone/settings/__pycache__/base.cpython-36.pyc
create mode 100644 keystone/settings/__pycache__/settings_secret.cpython-36.pyc
create mode 100644 keystone/settings/__pycache__/staging_straits.cpython-36.pyc
rewrite keystone/settings/staging_straits.py (65%)
delete mode 100644 p0150_1.pdf
啊。它也提交了所有这些__pycache__
目录。
我猜这是因为我应该在我的 pythonanywhere 服务器上创建某种全局/通用 .gitignore 文件?
所以问题:
1) 我如何从我的存储库中永久删除这些 pycache 内容 2) 如何防止我的 pythonanywhere 服务器将来尝试将这些内容添加到我的存储库中——我的 pycharm/本地机器没有这个问题——它会忽略这些文件。
【问题讨论】:
一些线索:***.com/questions/1139762/…(你的目录中可能已经有一个 .gitignore 文件) 在第 (1) 部分:请注意,您不能更改任何现有提交,但您可以停止使用它们,最终,如果无法找到它们,它们就会过期.如果您没有在其他任何地方发送此新提交(以便只有您拥有它),您可以停止使用此提交(通过使用git commit --amend
将其推到一边,或使用git reset
隐藏它让你甚至看不到它)。然后,您的任何(可见)提交中都不会包含 __pycache__
,因此您也不会将包含它的提交发送到任何其他存储库。
放入.gitignore
调整 gitignore 后,我不得不对每个文件都这样做,所以我调用 awk 寻求帮助:“git status | grep pycache | awk 'print $3' | xargs git reset HEAD”跨度>
【参考方案1】:
根据git docs,很简单的在~/.gitignore 中添加以下内容:
**/__pycache__
前导“**”后跟斜杠表示在所有目录中都匹配。为了 例如,“**/foo”在任何地方匹配文件或目录“foo”,相同 作为模式“foo”。 "**/foo/bar" 匹配文件或目录 "bar" 直接在“foo”目录下的任何地方。
【讨论】:
我的错,我的文件夹已经被跟踪了,这就是为什么它不起作用【参考方案2】:-
您可以通过
git rm
删除该文件夹,然后提交并推送该文件夹。或者,如果您感觉超级冒险并且没有其他人使用您的存储库,您可以执行 commit --fixup
和 rebase --interactive
来清理所有内容。详情请见here。
将__pycache__
添加到~/.gitignore
。或者更好的是,只需为您的 repo 签入一个 .gitignore 文件。
【讨论】:
以上是关于从 pythonanywhere 添加/提交时,将 `__pycache__` 保留在我的存储库之外的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Django 项目迁移到 Pythonanywhere
有没有办法从脚本访问 PythonAnywhere CPU Allowance?
将mysql与pythonanywhere一起使用时出现错误4
在 pythonanywhere 中托管时,django python 中的 Cloudinary Image Upload 错误
PYTHONANYWHERE ...我在尝试访问 /admin/default/ 时开始收到“403 FORBIDDEN”错误