【青训营】1月27日总结

108 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第10天

git

由于之前一直自己独自开发,对git只有大概的了解,借着着青训营,完善一下git使用

gitignore:

  • 即.gitignore文件, 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略不需要保存的文件,如日志文件,个人调试时的配置文件,临时文件工具自动生成的文件填进去,Git就会自动忽略这些文件或目录。

  • 可以通过正则表达式进行模式匹配,通过一条规则匹配多个结果

    • 空行不匹配任何文件
    • #表示注释
    • \表示转义
    • *匹配任意字符(任意数量字符) ?匹配任意字符(只能匹配一个字符) 二者都不可匹配/
    • /用于分割目录:
    • 当开头存在/时,表示只从.gitignore所在的目录开始匹配,否则下级目录也会匹配
    • 当结尾存在/时,表示只匹配目录,否则将匹配目录和文件
    • !表示否定,使用!后,该文件将被重新包含,但如果该文件的父级目录被排除了,那么使用!也不会再次被包含
    • bin/* 忽略bin中的文件 (不可写成bin,)
    • !bin/run.sh 包含bin中的run.sh文件
    • []用于匹配一个字符列表,如a[nm]z可以匹配amzanz
    • **用于匹配多级目录,如a/**/b可以匹配,a/b,a/x/b,a/x/y/b
  • git check-ignore <文件或路径名>可以查看该文件是否被忽略掉,如果输出文件名则表示忽略该文件, -v参数表示查看具体哪条规则忽略掉该文件

  • 注意事项:

    • .gitignore只能忽略之前没有被追踪的文件,所以先纳入版本管理后写入.gitignore是无效的。

      • 解决方案:
      • 先删除本地缓存之后再加入.gitignore
        git rm -r –cached
        git add
        git status
        
    • 反过来,已被.gitignore忽略的文件无法加入版本库

      • 解决方案:
      • 先移除规则,再纳入版本管理,最后重新加入规则go相对路径