Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从git存储库中删除并忽略所有具有扩展名的文件_Python_Django_Git_Github - Fatal编程技术网

Python 从git存储库中删除并忽略所有具有扩展名的文件

Python 从git存储库中删除并忽略所有具有扩展名的文件,python,django,git,github,Python,Django,Git,Github,我正在与其他一些开发人员一起进行django项目,我们最近意识到,我们应用程序中的所有.pwc文件都会导致提交和存储库混乱 是否有任何方法可以从git存储库的所有子目录中删除所有.pwc文件,然后在将来提交时忽略它们?有很多方法可以删除它们: git ls-files | grep '\.pwc$' | xargs git rm find . -name *.pwc | xargs git rm 注意:如果您尚未提交它们,只需使用rm,而不是git-rm 要在将来忽略它们,只需将*.pwc添

我正在与其他一些开发人员一起进行django项目,我们最近意识到,我们应用程序中的所有.pwc文件都会导致提交和存储库混乱


是否有任何方法可以从git存储库的所有子目录中删除所有.pwc文件,然后在将来提交时忽略它们?

有很多方法可以删除它们:

git ls-files | grep '\.pwc$' | xargs git rm

find . -name *.pwc | xargs git rm
注意:如果您尚未提交它们,只需使用
rm
,而不是
git-rm


要在将来忽略它们,只需将*.pwc添加到.gitignore。(如果您没有,请在存储库的顶层创建一个名为.gitignore的文件,只需添加一行“*.pwc”)

Jefromi的回答将在当前和未来删除它们……您也可以使用在过去删除它们。当然,这还有其他一些影响,比如要求参与回购的所有其他人重新结账(并可能重新确定他们没有推进到主回购的任何工作的基础)。取决于PWC文件的大小,如果它们在您的repo中浪费了大量磁盘空间,您可能需要这样做(因为每次克隆git repo时,您都会得到每个文件和每个版本)

您还可以使用以下功能:

git rm -r '*.pwc' 
然后让git忽略这些文件:

echo '*.pwc' >> .gitignore
最后一个是,如果您已经有.gitignore文件,如果没有,则使用单个'>'符号。

在Windows中,这对我很有用:

git rm -r '*.pwc' -f
为了把它放在里面,我忽略了

echo '*.pwc' >> .gitignore

我后来确实设置了一个.gitignore,但是*.pwc会在应用程序的每个目录级别都忽略它们吗?在找到它的目录的所有子目录中,.gitignore都受到尊重。这就是为什么它们通常被放在顶级的原因。请注意,如果希望仅对给定的子目录使用忽略规则,则可以将它们放在较低的级别。如果出现错误
find:path必须位于表达式:“filename.pwc”
,则将命令更改为
find-名称“*.pwc”| xargs rm
。请注意单引号。对,但这不会查看子目录。@jiehanzheng这是不正确的,
-r
标志也会删除子目录中的文件。对我来说,它是:
git rm-r*.pdf
,文件名周围没有引号您是救命稻草。你帮我节省了很多时间!