刚学git时,一股脑吧所有文件全部加到版本管理中,
现在做Android开发,这样做就有很大的问题了,
gen  和bin  文件夹下的文件是编译生成的,最好不要加到版本管理中,最好加入到.gitignore文件中(这两个文件夹要留,只是把文件夹下的文件移除版本管理库)
可是,我已经加入到了版本管理中,怎么办?
一般来说,使用“git rm”命令

// 下面就以删除bin文件夹为例子,删除gen等文件,也是一样的道理,以此类推
1.刚开始 使用的是 git rm -r -n */gengen”)
参数解释:-r  递归移除目录,(Allow recursive removal when a leading directory name is given.)
   -n:加上这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览,所以一般用这个参数先看看要删除哪些文件,防止误删,确认之后,就去掉此参数,真正的删除文件。  (Don't actually remove any file(s). Instead, just show if they exist in the index and would otherwise be
           removed by the command.)

但是上面的命令真正会删除文件,我觉得,我需要的只是从版本管理库中删除,不再跟踪此文件,而硬盘上的这个文件还是要的,所以,上面的命令还要增加参数来实现此目的。

引用:

\******************开始***************\

 我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希 望保留在当前工作目录中。换句话说,仅是从跟踪清单中删除。比如一些大型日志文件或者 一堆 .a 编译文件,不小心纳入仓库后,要移除跟踪但不删除文件,以便稍后在 .gitignore 文件中补上,用 --cached 选项即可:

\******************结束***************\
 
2.按照上面的引用,我修改的命令如下:
 git rm  -r -n --cached   */bin
 git rm *~  (只删除当前目录下以“~”结尾的文件)
注意到星号 * 之前的反斜杠 \,因为 Git 有它自己的文件模式扩展匹配方式,所以我们 不用 shell 来帮忙展开(译注:实际上不加反斜杠也可以运行,只不过按照 shell 扩展的 话,仅仅删除指定目录下的文件而不会递归匹配。上面的例子本来就指定了目录,所以效果 等同,但下面的例子就会用递归方式匹配,所以必须加反斜杠。)。此命令删除所有 log/ 目录下扩展名为 .log 的文件。类似的比如:
 git rm \*~ (会递归的删除当前目录 以及 子目录下的以“~”结尾的文件)
会递归删除当前目录及其子目录中所有 ~ 结尾的文件。

所以我最后的命令是

git rm  -r -n --cached   */bin/\*  (注意:此命令会真正删除文件,你可以加上"-n"参数 查看文件列表)

3.删除gen文件夹 只要把上面的“bin”改为“gen”即可
4.把这俩文件夹移除版本管理,但是 又有问题了,就是
在你执行 “git status”查看当前状态,会发现 gen和bin文件夹下的文件会出现,提示没有在版本管理里面
这就很烦人,我们既想把gen和bin移除版本管理库,
但是这样的提示,会耽误我们的“git add”命令,也会干扰我们使用“git status”的结果列表
我们想忽略这俩文件夹,

我参考了下面的连接
http://stackoverflow.com/questions/3325736/eclipse-android-and-gitignore

我们可以在与 “.git”文件夹同级目录下 建立“.gitignore”文件,就是这俩文件在同一个目录下
“.gitignore”文件里面的内容就是  我们要忽略的文件,这些文件即使不在版本管理库,也不会提示的
文件内容如下:

# built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# generated files
bin/
gen/

# Local configuration file (sdk path, etc)
local.properties

# Eclipse project files
#.classpath
#.project

# Proguard folder generated by Eclipse
proguard/

# Intellij project files
*.iml
*.ipr
*.iws
.idea/

上面这些文件就被忽略。
原文是删除了“.classpath”和“.project”,我不建议这样做,这两个文件还是留在版本管理库,否则,你把项目导出到别的地方,再导入时就会有问题。

记得

参考如下:

\******************开始***************\
 
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,像是日志或者编译过程中创建的等等。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式,来看一个简单的例子:

$ cat .gitignore *.[oa]
*~

第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是 编译过程中出现的,我们用不着跟踪它们的版本。第二行告诉 Git 忽略所有以波浪符(~) 结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。此外,你可能 还需要忽略 log,tmp 或者 pid 目录,以及自动生成的文档等等。要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。
文件 .gitignore 的格式规范如下:
• 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
• 可以使用标准的 glob 模式匹配。
• 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
• 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任 意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一 个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分 隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。
我们再看一个 .gitignore 文件的例子:

# 此为注释 – 将被 Git 忽略
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO build/ # 忽略 build/ 目录下的所有文件
doc

\******************结束***************\

如果做完上面的设置后,出现编译错误,课按照下面的方法解决

With regards to the error, I would clean the project and/or try to run the Fix Project Properties utility (right-click on the Project -> Android Tools -> Fix Project Properties).

这里推荐一个学习git 的入门帖子:写的还不错
http://www.nshen.net/sitelog/2011/08/03/git-note.html

git 把文件从 版本管理中移除 andorid版本的更多相关文章

  1. git的介绍、git的功能特性、git工作流程、git 过滤文件、git多分支管理、远程仓库、把路飞项目传到远程仓库(非空的)、ssh链接远程仓库,协同开发

    Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. [1] 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码 ...

  2. [App Store Connect帮助]七、在 App Store 上发行(3.4)提交至“App 审核”:将构建版本从审核中移除

    若要停止“App 审核”流程,您可以将该 App 版本从 App 审核中移除.要执行此项操作,App 状态必须为下列之一: 正在等待出口合规检查 正在等待审核 正在审核 等待开发者发布 等待 Appl ...

  3. Git从库中移除已删除大文件

    写在前面大家一定遇到过在使用Git时,不小心将一个很大的文件添加到库中,即使删除,记录中还是保存了这个文件.以后不管是拷贝,还是push/pull都比较麻烦.今天在上传工程到github上,发现最大只 ...

  4. git忽略文件并删除git仓库中的文件

    问题描述 不慎在创建.gitignore  文件之前的时候将文件push到了 git仓库,即使之后在.gitignore文件中写入新的过滤规则,这些规则也不会起作用的,git依然会对所有git仓库中的 ...

  5. 在git多分支repo仓库中彻底清除大文件

    坑的由来 repo中不小心上传了许多测试生成的data.结果可想而知,原本只有代码的仓库突然间变得无比臃肿(或者是慢慢臃肿),从早期的几十MB,迅速飙升至1G. 到底发生了什么 早些时候我对git的原 ...

  6. Eclipse中使用GIT提交文件至本地

    GIT提交文件至本地: 1.  右击项目——Team——Commit…: 2.在弹出的Commit Changes框中——选择要提交的文件——填写提交说明——点击Commit,即可提交至本地.

  7. 无法打开虚拟机“master”(D:\文档\Virtual Machines\master\master.vmx):未找到文件。是否从库中移除“master”?

    今天打开虚拟机的时候,出现了这样的弹窗提示: 无法打开虚拟机"master"(D:\文档\Virtual Machines\master\master.vmx):未找到文件.是否从 ...

  8. Eclipse中使用GIT将文件还原至上一版本

    GIT将文件还原至上一版本: 选中文件——右击——Replace With——HEAD Revision:

  9. Git操作文件的时候手贱了,怎么恢复?

    我们在使用git的过程当中很难避免的一点就是手贱,因为人嘛总有犯错疏忽的时候,有时候一不小心就操作错了.我也经常遇到这种情况,所以这时候对git的了解和掌握就非常重要,即使操作错了,我们也可以通过gi ...

随机推荐

  1. 不得不存!UI设计新手不可错过的7条实用法则

    http://www.gameres.com/316761.html 本文编译自 Medium,作者是一位UX(User Experience, 用户体验)设计师,他通过自己学习UI设计的过程,总结出 ...

  2. web前端绘制0.5像素的几种方法

    最近完成了公司安排的移动web触屏开发,期间涉及到在移动设备上显示线条,最开始采用PC常用的css board属性来显示1个像素的线条,但是发现在移动设备上并不美观,参考淘宝.京东的触屏发现它们均是采 ...

  3. codeforces 633A A. Ebony and Ivory(暴力)

    A. Ebony and Ivory time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  4. 【遍历二叉树】07恢复二叉搜索树【Recover Binary Search Tree】

    开一个指针数组,中序遍历这个二叉搜索树,将节点的指针依次保存在数组里, 然后寻找两处逆序的位置, 中序便利里BST得到的是升序序列 ++++++++++++++++++++++++++++++++++ ...

  5. 解决编译warning:warning: ‘MeteringUnit::voltage_gain_’ will be initialized after [-Wreorder]

    问题: 环境:ubuntu 12.04,g++版本4.6.3,编译目标文件时出现warnings: u1204@u1204-zhw:~/hwsvn/2sw/4prj_mips/UCP_rt5350/s ...

  6. POJ1741 Tree(树的点分治基础题)

    Give a tree with n vertices,each edge has a length(positive integer less than 1001).Define dist(u,v) ...

  7. ACM学习历程—HDU 5451 Best Solver(Fibonacci数列 && 快速幂)(2015沈阳网赛1002题)

    Problem Description The so-called best problem solver can easily solve this problem, with his/her ch ...

  8. java多线程编程核心技术——第四章总结

    第一节使用ReentrantLock类 1.1使用ReentrantLock实现同步:测试1 1.2使用ReentrantLock实现同步:测试2 1.3使用Condition实现等待/同步错误用法与 ...

  9. SYS/BIOS实例分析

    SYS/BIOS简介 SYS/BIOS是一个可扩展的实时内核(或者说是操作系统),其提供了许多模块化的APIs(应用程序接口),支持抢占式多线程,硬件抽象,实时分析和配置工具,其设计目的是为了最大限度 ...

  10. Project Online JS 添加Ribbon按钮

    var Projects = Projects || {}; (function () { Projects.ribbonButtonClick = function (name) { var pro ...