zoukankan      html  css  js  c++  java
  • git

    要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。

    如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 “Changes not staged for commit” 部分(也就是未暂存清单)看到:

    1.  
      $ rm grit.gemspec
    2.  
      $ git status
    3.  
      On branch master
    4.  
      Changes not staged for commit:
    5.  
      (use "git add/rm <file>..." to update what will be committed)
    6.  
      (use "git checkout -- <file>..." to discard changes in working directory)
    7.  
       
    8.  
      deleted: grit.gemspec
    9.  
       
    10.  
      no changes added to commit (use "git add" and/or "git commit -a")

    然后再运行 git rm 记录此次移除文件的操作:

    1.  
      $ git rm grit.gemspec
    2.  
      rm 'grit.gemspec'
    3.  
      $ git status
    4.  
      On branch master
    5.  
      Changes to be committed:
    6.  
      (use "git reset HEAD <file>..." to unstage)
    7.  
       
    8.  
      deleted: grit.gemspec

    最后提交的时候,该文件就不再纳入版本管理了。如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f(译注:即 force 的首字母),以防误删除文件后丢失修改的内容。

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

    $ git rm --cached readme.txt
    
     

    后面可以列出文件或者目录的名字,也可以使用 glob 模式。比方说:

    $ git rm log/*.log
    
     

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

    $ git rm *~
    
     

    会递归删除当前目录及其子目录中所有 ~ 结尾的文件。

    取消对文件的跟踪还有一个命令:git update-index --assume-unchanged <取消跟踪的文件>
    注:该命令只能取消提交到暂存区之前的文件,可以先用git reset <文件名>将暂存区的文件回退到暂存区之前,然后再取消跟踪。

    --------------------- 本文来自 leedaning 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/leedaning/article/details/44976319?utm_source=copy 

  • 相关阅读:
    DOORS的引用类型
    C# 中多态和重载的区别
    VS中C#连接SQLite数据库处理器架构“x86”不匹配的问题
    C# 4种方法计算斐波那契数列 Fibonacci
    (C#版本)提升SQlite数据库效率——开启事务,极速插入数据,3秒100万,32秒1000万条数据
    数据结构简单学习
    intellij idea载入java工程报程序包提示不存在,springboot已经导入了依赖依然提示不存在
    springboot整合mybatis提示错误Error:java: 程序包org.apache.ibatis.annotations不存在、找不到符号:类 Mapper
    springboot Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project springboot-mybatis: There are test failures.
    C# Stream 和 byte[] 之间的转换
  • 原文地址:https://www.cnblogs.com/zhanghengscnc/p/9740953.html
Copyright © 2011-2022 走看看