不小心,我已将 .pyc 文件推送到主存储库。现在我想删除它们,但我做不到。有什么方法可以直接从 Bitbucket 网站删除它们?
10 回答
- 使用删除
.pyc
文件git rm *.pyc
。如果这不起作用,请使用git rm -f *.pyc
- 犯罪
git commit -a -m 'all pyc files removed'
- 推
git push
.pyc
在将来的提交中,您可以通过创建.gitignore
文件来忽略文件
不,您不能直接从 BitBucket 界面删除它们,但您可以在本地结帐中删除它们,并且find ./ -type f -name '*.pyc' -exec git rm {} \;
(或简单地 git rm 每个 pyc 文件一个接一个)。然后提交/推送您的更改。
最后,为了避免再次犯同样的错误,您可以在 repo 的根目录下创建一个文件,并将其命名为“.gitignore”,内容如下:
*.pyc
*~
*.swp
*~ 和 ~.swp 是其他经常被意外推送的通常被遗忘的文件类型。请参阅 gitignore 上的 github 文档https://help.github.com/articles/ignoring-files(以及他们的 .gitignore 文件库以获得一些不错的默认值)。
这对我有用,
find . -name '*.pyc' | xargs -n 1 git rm --cached
git rm *.pyc --cached
git commit -a -m'remove pyc from index'
git push
PS:我看到了问题的日期,但是这个解决方案看起来更好,恕我直言。也许它会帮助某人......
要删除所有.pyc
文件,请使用git rm -rf *.pyc
然后将 .gitignore 文件添加*.py[co]
到您的.gitignore文件中。(这将防止 .pyc 和 .pyo 文件在未来的提交中被提交)
我使用了 simeg 的解决方案,但也想删除大量错误添加到分支的 *.pyc 文件。我使用 awk 递归地从缓存中删除它们。
git status | awk '{if($1=="modified:" && $2!=".gitignore") ; system("git rm --cached "$2)}'
然后,我从本地删除了文件
find . -name *.pyc -delete
因为在默认的 Bitbucket 中,repo 中没有 .gitignore 文件,所以你可以这样做:
- 您可以创建本地 .gitignore(不应推送)并将 *.pyc 添加为一行;
- 您可以在 Github 存储库中复制 .gitignore 并在此文件中添加 *.pyc 作为一行!您可以推送它或将其保存在本地仓库中!
使用PyDev 进行 eclipse 的快速方法。
转到项目的 PyDev Package Explorer 并执行以下操作:
右键单击+ Pydev /删除 *.pyc *.pyo 和 *$py.class 文件
将弹出一个窗口,告诉您已删除了多少文件。
可选:将您的更改提交给团队/服务器:
- 右键+团队/提交
在提交窗口中,您应该看不到任何可添加的 .pyc,因为我们删除了它们。此外,如果您之前提交了此类文件,那么您现在应该能够提交它们的“删除”。
===> 您的本地和服务器存储库现在没有 *.pyc *.pyo 和 *$py.class 文件 :)
一个有趣的单线:
git status | grep pyc | sed -e 's/ new file: //g' | xargs -I {} git rm --cached {}
另一个有趣的班轮删除所有 pyc 文件。
寻找 。-name '*.pyc' -exec git rm {} \;
不要忘记按照其他答案中的步骤提交和添加 gitignore。