【发布时间】:2014-11-19 04:35:12
【问题描述】:
无意中,我已将 .pyc 文件推送到主存储库。现在我想删除它们,但我做不到。有什么方法可以直接从 Bitbucket 网站删除它们?
【问题讨论】:
无意中,我已将 .pyc 文件推送到主存储库。现在我想删除它们,但我做不到。有什么方法可以直接从 Bitbucket 网站删除它们?
【问题讨论】:
.pyc 文件使用git rm *.pyc。如果这不起作用,请使用git rm -f *.pyc
git commit -a -m 'all pyc files removed'
git push
.gitignore 文件来忽略 .pyc 文件【讨论】:
*.pyc 以在如上所述删除后忽略每个 .pycin 未来
unsetopt nomatch。
不,您不能直接从 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 以获得一些不错的默认值)。
【讨论】:
git rm *.pyc --cached
git commit -a -m'remove pyc from index'
git push
PS:我看到了问题的日期,但这个解决方案看起来更好,恕我直言。也许它会帮助某人...... .
【讨论】:
这对我有用,
find . -name '*.pyc' | xargs -n 1 git rm --cached
【讨论】:
我使用了 simeg 的解决方案,但也想删除大量错误添加到分支的 *.pyc 文件。我使用 awk 递归地从缓存中删除它们。
git status | awk '{if($1=="modified:" && $2!=".gitignore") ; system("git rm --cached "$2)}'
然后,我从本地删除了文件
find . -name *.pyc -delete
【讨论】:
要删除所有.pyc 文件,请使用git rm -rf *.pyc
然后将*.py[co] 添加到您的 .gitignore 文件中。 (这将防止 .pyc 和 .pyo 文件在未来的提交中被提交)
【讨论】:
因为在默认的Bitbucket中,repo中没有.gitignore文件,所以你可以这样做:
【讨论】:
转到项目的 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。
【讨论】: