刚开始用git的时候,喜欢用git add *把所有文件都加入到版本管理中。
后来发现,因为我在virtualenv下面创建的内容,在跑测试的时候,会产生__pycache__文件夹,里面的很多东西都不需要纳入版本管理中,于是就想把它删掉。
一般来说,用的是git rm命令,比如
git rm -r __pycache__
但是它会直接删掉硬盘上的文件,我们可以加上-n参数查看他会删掉哪些文件。
(.venv) [root@wbvalid SocialMatrix]# git rm -r -n BaseClasses/__pycache__/
rm ‘BaseClasses/__pycache__/World.cpython-36.pyc‘
比如结果如上所示。
那么如果我想保留硬盘上的这个文件,而只删除版本管理中的文件,就需要加入--cached参数。
(.venv) [root@wbvalid SocialMatrix]# git rm -r --cached BaseClasses/__pycache__/
这样,版本管理中的__pycache__文件夹就被删除了。后续想要排除这个文件夹,只需要在.git文件存在的目录下添加一个.gitignore文件,让git add的时候跳过这个文件夹即可。
(.venv) [root@wbvalid SocialMatrix]# cat .gitignore
# skip .venv
.venv/
# skip */__pycache__
*/__pycache__
这样就可以不用担心把这些cache文件加入版本管理啦。
原文:http://wbvalid.blog.51cto.com/10926406/1945645