【问题标题】:Remove .pyc files from Git remote repository从 Git 远程存储库中删除 .pyc 文件
【发布时间】:2014-11-19 04:35:12
【问题描述】:

无意中,我已将 .pyc 文件推送到主存储库。现在我想删除它们,但我做不到。有什么方法可以直接从 Bitbucket 网站删除它们?

【问题讨论】:

    标签: git pyc


    【解决方案1】:
    1. 删除 .pyc 文件使用git rm *.pyc。如果这不起作用,请使用git rm -f *.pyc
    2. 提交 git commit -a -m 'all pyc files removed'
    3. 推送 git push
    4. 在以后的提交中,您可以通过创建 .gitignore 文件来忽略 .pyc 文件

    【讨论】:

    • 除了第四点:您可以使用gitignore.io,但请仔细检查条目。
    • 有关 .gitignore 文件的其他信息 内容,在您的 .gitignore 中添加这一行 *.pyc 以在如上所述删除后忽略每个 .pycin 未来
    • 确实将其添加到 .gitignore 将来会有所帮助。
    • 如果您使用 zsh 并且它说找不到任何以 .pyc 结尾的文件,请在您的 zshrc 中添加 unsetopt nomatch
    【解决方案2】:

    不,您不能直接从 BitBucket 界面删除它们,但您可以在本地结帐和find ./ -type f -name '*.pyc' -exec git rm {} \; 中删除它们(或者简单地 git rm 每个 pyc 文件一个接一个)。然后提交/推送您的更改。

    最后,为避免再次犯同样的错误,您可以在 repo 的根目录下创建一个文件,并将其命名为“.gitignore”,内容如下:

    *.pyc
    *~
    *.swp
    

    *~ 和 ~.swp 是其他经常被意外推送的通常被遗忘的文件类型。请参阅 gitignore https://help.github.com/articles/ignoring-files 上的 github 文档(以及他们的 .gitignore 文件的 repo 以获得一些不错的默认值)。

    【讨论】:

      【解决方案3】:
      git rm *.pyc --cached
      git commit -a -m'remove pyc from index'
      git push
      

      PS:我看到了问题的日期,但这个解决方案看起来更好,恕我直言。也许它会帮助某人...... .

      【讨论】:

      • 提交拼写有错别字。
      【解决方案4】:

      这对我有用,

      find . -name '*.pyc' | xargs -n 1 git rm --cached
      

      【讨论】:

      • 这比子目录中的 .pyc 文件的公认解决方案效果更好
      【解决方案5】:

      我使用了 simeg 的解决方案,但也想删除大量错误添加到分支的 *.pyc 文件。我使用 awk 递归地从缓存中删除它们。

      git status | awk '{if($1=="modified:" && $2!=".gitignore") ; system("git rm --cached "$2)}'
      

      然后,我从本地删除了文件

      find . -name *.pyc -delete
      

      【讨论】:

        【解决方案6】:

        要删除所有.pyc 文件,请使用git rm -rf *.pyc

        然后将*.py[co] 添加到您的 .gitignore 文件中。 (这将防止 .pyc 和 .pyo 文件在未来的提交中被提交)

        【讨论】:

          【解决方案7】:

          因为在默认的Bitbucket中,repo中没有.gitignore文件,所以你可以这样做:

          1. 您可以创建本地.gitignore(不应推送)并将*.pyc添加为一行;
          2. 你可以复制 Github repo 中的 .gitignore 并在这个文件中添加 *.pyc 作为一行!您可以推送它或将其保存在本地仓库中!

          【讨论】:

            【解决方案8】:

            PyDev for eclipse的快速方法。

            转到项目的 PyDev Package Explorer 并执行以下操作:


            • 右键 + Pydev / 删除*.pyc *.pyo和*$py.class文件

              将弹出一个窗口,告诉您已删除了多少文件。

            可选:将您的更改提交给团队/服务器:

            • 右键单击 + 团队/提交

            在提交窗口中,您不应该看到任何可添加的 .pyc,因为我们删除了它们。 此外,如果您之前提交了此类文件,那么您现在应该能够提交它们的“删除”。

            ===> 您的本地和服务器存储库现在没有 *.pyc *.pyo 和 *$py.class 文件:)

            【讨论】:

              【解决方案9】:

              一个有趣的单线:

              git status | grep pyc | sed -e 's/ new file: //g' | xargs -I {} git rm --cached {}

              【讨论】:

                【解决方案10】:

                删除所有 pyc 文件的另一个有趣的衬垫。

                找到 . -name '*.pyc' -exec git rm {} \;

                不要忘记按照其他答案中的步骤提交并添加 gitignore。

                【讨论】:

                  猜你喜欢
                  • 2012-08-31
                  • 2012-11-28
                  • 1970-01-01
                  • 2017-08-15
                  • 2013-02-10
                  • 2014-07-29
                  • 2011-07-30
                  • 2014-06-04
                  相关资源
                  最近更新 更多