zoukankan      html  css  js  c++  java
  • .gitignore无效解决方案以及git rm和rm的区别

    一. gitignore

    先来了解一下gitignore的常用语法

      斜杠“/”表示目录, 是否已斜杠开头有很大区别,如 /build 与 build/ 的区别:其中 build/ 表示不管在哪个位置的 build 目录都会被忽略;

      星号“*”通配多个字符;

      问号“?”通配单个字符

      方括号“[]”包含单个字符的匹配列表;

      叹号“!”表示取反,即不忽略(跟踪)匹配到的文件或目录;

      此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

      比如:1)规则:myfolder/* 
         说明:忽略目录 myfolder 下的全部内容;不管是根目录(.gitignore文件所在的目录)下的 /myfolder/ 目录,还是某个子目录 /child/myfolder/ 目录,都会被忽略;

      (2)规则:/myfolder/* 
         说明:只忽略根目录下的 /myfolder/ 目录的全部内容;

    但是有时候在.gitignore中新添加规则然后运行 git add . 还是会将不想要的文件添加进去,这是因为.gitignore还没有生效(因为版本控制不会因为你现在修改了.gitignore文件而将你已经添加进去的文件删除),不过可以这样(一定要先commit,不然所做的修改会丢失!)

    git commit -am "commit everything first!"

    git rm -r --cached . // 这里会从git仓库中清除所有文件,而不是从硬盘上删除文件

    git add . // 这里又将所有文件添加进git仓库,同时.gitignore规则会生效

    git commit -m "fixed untracked files"

     二. git rm 和 rm 区别

    1. git rm 删除文件,会将该删除操作记录下来

     删除后,执行git commit -m 时,会自动将删除该文件的操作提交;

    2. rm 删除文件,仅仅是删除了物理文件,并没有将其从git记录中删除

     执行rm删除文件后,单纯执行git commit -m 时,不会将删除记录提交,可执行以下命令:

       git commit -am 'remove file' 才会将删除文件的操作提交

    一点一滴累积,总有一天你也会成为别人口中的大牛!
  • 相关阅读:
    【JDBC】JDBC实战
    【JDBC】JDBC操作实战
    【Oracle】事务、表复制
    Hibernate 再接触 继承映射
    Hibernate 再接触 集合映射
    Hibernate 再接触 CRUD
    Hibernate 再接触 多对多单向双向关联
    Hibernnate 一对多多对一双向关联
    Hibernate 再接触 一对多单向关联
    Hibernate 再接触 多对一与一对多
  • 原文地址:https://www.cnblogs.com/fancyLee/p/9009822.html
Copyright © 2011-2022 走看看