从Git远程存储库中删除.pyc文件

时间:2014-09-24 15:38:30

标签: git pyc

无意中,我已将.pyc文件推送到主存储库。现在我想删除它们,但我不能这样做。有没有办法直接从Bitbucket网站上删除它们?

10 个答案:

答案 0 :(得分:105)

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

答案 1 :(得分:15)

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

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

*.pyc
*~
*.swp

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

答案 2 :(得分:10)

git rm *.pyc --cached
git commmit -a -m'remove pyc from index'
git push

PS:我看到问题的日期,但这个解决方案看起来更好,imho。可能是它会帮助某人......

答案 3 :(得分:7)

你为我工作,

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

答案 4 :(得分:3)

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

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

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

find . -name *.pyc -delete

答案 5 :(得分:3)

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

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

答案 6 :(得分:1)

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

  1. 您可以创建本地.gitignore(不应该被推送)并添加* .pyc作为一行;
  2. 您可以在Github repo中复制.gitignore并在此文件中添加* .pyc作为一行!您可以将其推送或保存在当地的回购中!

答案 7 :(得分:1)

快速使用 PyDev for eclipse

转到项目的PyDev Package Explorer并执行:

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

      

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

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

  • 右键单击 + 团队/提交

在提交窗口中,当我们删除它们时,您不应该看到任何可用的.pyc。 此外,如果你之前提交了这样的文件,你应该能够提交他们的"删除"现在。

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

答案 8 :(得分:0)

一个有趣的单行:

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

答案 9 :(得分:0)

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

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

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