【Git】Git-忽略文件-移除文件-移动文件

二、Git

4. 忽略文件

  • 有时候我们会有一些文件不需要纳入 Git 的管理,此时就应该编写 .gitignore 文件来列出要 Git 仓库忽略的文件模式。该文件的格式规范如下:

    # 忽略所有以 .a 结尾的文件
    *.a
    
    # 不能忽略所有 lib.a 文件
    !lib.a
    
    # 仅仅忽略当前目录下的 TODO 文件
    /TODO
    
    # 忽略 build 目录下的所有文件
    build/
    
    # 仅仅忽略 doc 一个目录下的所有 .txt 文件
    doc/*.txt
    
    # 忽略 doc 目录下(包括子目录)的所有 .pdf 文件
    doc/**/*.pdf
    

    指定文件的格式一般要使用正则表达式:

    • *匹配 0 个或多个任意字符;

    • [abc]可以匹配任何一个在方框号中的字符(在这个例子中是要么匹配一个a,要么匹配一个b,要么匹配一个c);

    • ? 只匹配一个任意字符;

    • [0-9]表示匹配在 0 到 9 范围内的所有数字。

    • 使用两个星号**表示匹配任意的中间目录,比如 learn/**/git 可以匹配 learn/git 、learn/no/git 或者 learn/no/python/git 。


5. 移除文件

  • 最常见的情况是,在 .gitignore 文件中未列出对应的文件,有时为了贪求效率,使用 git add . 把所有文件都放到暂存区域,包括把一些不希望加入 Git 版本管理的日志文件等也放进去了,这个时候我们希望可以从暂存区域中删除这些不希望被管理的文件,使这些文件仍然被存放在工作目录上,而不被 Git 继续跟踪。此时可以使用git rm --cached filename命令。这样就可以把误添加的文件从暂存区中移除,而防止下一次 commit 时加入到 Git 仓库中去。

  • 还有一种情况就是,我希望删除的文件已经 commit 或者 add 了,即已经被跟踪了,但我希望完全删除这个文件,即把工作目录中的这个文件也删了,这时我们就可以先在本地项目目录中删除这个文件,然后再使用git rm filename命令把该文件从已跟踪的文件清单中一并删除。

  • 这个是文件已经 add 但没有 commit 的情况,使用 git rm 命令就直接清空了,如果文件之前有过 commit ,而你又把想删除的文件从工作目录中删除了。意味着你需要把这个删除的操作再提交一遍,使得 Git 仓库知道这个文件已经删除了,不应该再被跟踪了。


6. 移动文件

  • 如果要在 Git 中对某些文件进行重命名,可以使用git mv original_name target_name命令。执行这个命令后,这个时候只要提交这次重命名操作就可以了。
posted @ 2022-04-27 13:35  陈景中  阅读(451)  评论(0编辑  收藏  举报