• git 把文件从 版本管理中移除 andorid版本


    刚学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

  • 相关阅读:
    SQL server 和Oracle 序列
    AD 域服务简介(一)- 基于 LDAP 的 AD 域服务器搭建及其使用(转)
    Windows Server 2008 R2 搭建DNS服务器(转)
    windows7下搭建HTTP服务器
    解决vcenter 6.0 vcsa安装插件时报错的问题
    Windows server 2008R2系统登录密码破解
    vmware Horizon 7 与远程桌面(mstsc)兼容性问题解决办法
    VCSA服务重启命令
    如何哄女朋友开心(转)
    快速搭建一个本地的FTP服务器 win10及win7
  • 原文地址:https://www.cnblogs.com/xuzhiwei/p/3313511.html
Copyright © 2020-2023  润新知