从 pythonanywhere 添加/提交时,将 `__pycache__` 保留在我的存储库之外

问题描述 投票:0回答:3

我在本地 win7 机器上构建了一个 Web 应用程序。 我是用pycharm做的,并使用git作为版本控制。 我是个 git 新手。

我将存储库放在 github 上,以便我可以将 web 应用程序暂存到我的 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/本地计算机没有这个问题 - 它会忽略这些文件。

git pythonanywhere
3个回答
47
投票

根据git docs,只需将以下内容添加到~/.gitignore即可:

**/__pycache__

前导“**”后跟斜杠表示在所有目录中匹配。为了 例如,“**/foo”在任何地方匹配文件或目录“foo”,相同 作为模式“foo”。 “**/foo/bar”匹配文件或目录“bar” 直接位于目录“foo”下的任何位置。


4
投票
  1. 您可以执行
    git rm
    删除该文件夹,然后提交并推送该文件夹。或者,如果您感觉超级冒险并且没有其他人使用您的存储库,您可以执行
    commit --fixup
    ,然后执行
    rebase --interactive
    来清理所有内容。详情请参阅此处
  2. __pycache__
    添加到
    ~/.gitignore
    。或者更好的是,只需为您的存储库签入 .gitignore 文件即可。

0
投票

要强制 git 忽略任何文件/文件夹,您必须在目录中创建一个 .gitignore 文件:

在这个 .gitignore 文件中,推送后将添加到您的存储库中,您应该添加您想要忽略的文件/文件夹。

例如:要忽略 pycache 文件夹,您可以在 .gitignore 文件中写入:

**/__pycache__

“*”告诉 git 该文件夹位于 git 当前正在访问的某个目录中。

“/pycache”部分告诉 git 要忽略的文件夹。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.