• git rm


    git rm可以执行删除的条件(前提是要被删除的文件还没有从workspace tree中移除)

        git rm可以执行删除的条件:被删除文件在index当中的blob内容必须与HEAD commit指向的blob内容以及workspace tree中的文件内容一致,换句话说即当运行git status时,被删除的文件不能出现在git status的输出当中。

        git rm --cached可以执行删除的条件:被删除的文件在index当中的blob内容与HEAD commit指向的blob内容一致,或者index当中的blob内容与workspace tree中的文件内容一致,换句话说即当运行git status时,被删除的文件不能同时出现在Changes to be committed和Changed but not updated当中。

    从index当中删除已经不再worksapce tree当中的文件

        如果没有使用git rm删除,而是直接使用rm删除文件,那么,该文件只是从workspace tree当中被删除了,而没有从index当中删除,这时的解决办法有5个:

    1) 执行git rm --cached 或者git rm命令;

    2) 执行git commit -a命令;

    3)执行git add -u;

    4)执行git add -A命令;

    5)执行git commit -m msg;

    git glob的扩展

        glob在git中有两种扩展方式,一种是使用shell的扩展方式,另一种是git自己扩展,比如有下面的文件结构

                                d

                                 |

                  -----------------------

                 |                               |

                hello.txt                     dd

                                                 |

                                              hello.txt

        此时git rm d/*.txt只会删除d/hello.txt,而不会同时删除d/dd/hello.txt,因为此时glob进行的是shell扩展,而shell 扩展不会匹配/;如果使用git rm d/*.txt,则会同时删除d/hello.txt, d/dd/hello.txt,由于在*前面加入了字符,此时进行的是git扩展,git扩展可以匹配/。

    但是这里有一个疑问就是如果使用git rm *.txt或者git rm d*.txt,即使在*前面没有加入,d/hello.txt和d/dd/hello.txt都会被删除

  • 相关阅读:
    如何动态调用WebServices
    Cache及(HttpRuntime.Cache与HttpContext.Current.Cache)
    SQL创建索引(转)
    TSQL用法四:OpenDataSource, OpenRowSet
    AppDomain动态加载程序集
    hdu 2544 最短路
    hdu 1151 Air Raid
    hdu3790 最短路径问题
    hdu 1548 A strange lift
    对于 前K短路径问题 和 A*算法 的一些小小总结
  • 原文地址:https://www.cnblogs.com/chaoguo1234/p/5318222.html
Copyright © 2020-2023  润新知