git 从版本控制中删除文件及.gitignore的用法

刚开始用git的时候,喜欢用git add *把所有文件都加入到版本管理中。

后来发现,因为我在virtualenv下面创建的内容,在跑测试的时候,会产生__pycache__文件夹,里面的很多东西都不需要纳入版本管理中,于是就想把它删掉。

一般来说,用的是git rm命令,比如

git rm -r __pycache__

但是它会直接删掉硬盘上的文件,我们可以加上-n参数查看他会删掉哪些文件。

(.venv) [[email protected] SocialMatrix]# git rm -r -n BaseClasses/__pycache__/

rm ‘BaseClasses/__pycache__/World.cpython-36.pyc‘

比如结果如上所示。

那么如果我想保留硬盘上的这个文件,而只删除版本管理中的文件,就需要加入--cached参数。

(.venv) [[email protected] SocialMatrix]# git rm -r --cached BaseClasses/__pycache__/

这样,版本管理中的__pycache__文件夹就被删除了。后续想要排除这个文件夹,只需要在.git文件存在的目录下添加一个.gitignore文件,让git add的时候跳过这个文件夹即可。

(.venv) [[email protected] SocialMatrix]# cat .gitignore

# skip .venv

.venv/

# skip */__pycache__

*/__pycache__

这样就可以不用担心把这些cache文件加入版本管理啦。

时间: 2024-10-11 13:13:00

git 从版本控制中删除文件及.gitignore的用法的相关文章

Linux中删除文件,磁盘空间未释放问题追踪

在客户使用我们产品后,发现一个问题:在删除了文件后,磁盘空间却没有释放.是有进程在打开这个文件,还是其他情况?我们一起来看看一下两个场景 一. 场景一:进程打开此文件 当一个文件正在被一个进程使用时,用户删除此文件,文件只会从目录结构中删除,但并没有从磁盘删除.当使用这个文件的进程结束后,文件才会真正的从磁盘删除,释放占有的空间. 我们发现剩余磁盘空间比较少时,回去删除一些大的临时文件或者log文件,如果删除之后会发现磁盘空间并未减少,那么可以通过"lsof"命令去查看正在使用该文件的

从GitHub远程仓库中删除文件夹或文件

在上传项目到github时,忘记忽略了某个文件夹target,就直接push上去了, 最后意识到了此问题,决定删除掉远程仓库中的target文件夹 删除前: 删除后: 在github上只能删除仓库,却无法删除文件夹或文件, 所以只能通过命令来解决 首先进入你的master文件夹下, Git Bash Here ,打开命令窗口 $ git --help 帮助命令 $ git pull origin master 将远程仓库里面的项目拉下来 $ dir  查看有哪些文件夹 $ git rm -r -

java/android开发中删除文件

在java或者android开发中经常遇到要删除一个文件夹及其子文件的需求,本文主要总结了自己开发中遇到并且使用过的两种删除文件和文件夹的方法. 1.如果仅仅是删除一个文件可以使用以下代码,传入文件路径即可 public static void deleteFile(String path) { File file = new File(path); file.delete(); } 2.如果需要删除一个非空文件夹,则需要遍历整个文件夹下子文件,进行递归删除 public static void

hadoop hdfs中删除文件恢复

hadoop的hdfs中删除的文件恢复原理和回收站原理是一样的,就是在删除hdfs文件时,被删除的文件存在了hdfs的.Trash文件夹中,恢复时只需要将该文件夹中文件拿出即可.具体操作如下: 1 设置trash 如果需要恢复hdfs中文件,就需要设置trash,hadoop的trash默认是关闭的.具体设置如下: <property>          <name>fs.trash.interval</name>          <value>10080

在source insight project中删除文件夹或者文件的通用方法

1.删除文件夹或者文件在硬盘上的数据 2.project->synchronize files...看到如下图,然后勾选remove missing files from project

C# WinForm 开发中删除文件异常处理心得

这几天在帮公司人力那边写一个邮件群发器,之前的开发过程都很顺利,就是在邮件发送完成之后删除项目下excel文件是出问题了,一直提示我"该文件已经被其他进程所占用,删除异常",字我记不住了,意思大概这样吧.当时我就纳闷了,文件流我也释放了并且关闭了,垃圾回收也加上了还是不能解决问题,几天在网上查了写资料,忽然发现既然文件被其他进程占用那我在写这个文件的时候先把文件流给锁上 这不就可以了嘛,果然,把流锁上立刻问题解决了.其实这也不是什么很难的问题,只不过我们有时候在处理问题的时候遗漏了一些

(原+转)ubuntu中删除文件夹

转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5638030.html 参考网址: http://zhidao.baidu.com/link?url=A19OjrgqwAV0fubnQnwCut3iPxzVzzDUM8ToqV6wsy7AR5boWeYE_7ptzr50jPyv5-Y_uHMDslilCR3xXJ7Wbq rm [选项] 文件 -f, --force 强力删除,不要求确认 -i 每删除一个文件或进入一个子目录都要求确认 -I 在删除

初次使用 git 的“核弹级选项”:filter-branch 从仓库中删除文件

当初看 Pro Git 时就被作者这个“核弹级选项”的称呼吓到了,因此一直没敢好奇地去尝试.核弹啊,用对了威力无穷,用错了破坏力无穷! 但是,今天,我不得不用了,因为我想把我的原来写一些代码放到 github 上去公开.由于之前没想过要公开,到上传时才发现不能上传大于50M的文件. 折腾了半天,还是无法上传,于是,整个命令出来了: git filter-branch --tree-filter 'rm -rf files_to_remove' --prune-empty -f HEAD --al

Java中删除文件、删除目录及目录下所有文件

private static boolean deleteDir(File dir) { if (dir.isDirectory()) { String[] children = dir.list(); //递归删除目录中的子目录下 for (int i=0; i<children.length; i++) { boolean success = deleteDir(new File(dir, children[i])); if (!success) { return false; } } }