Git 忽略文件设置 .gitignore

[复制链接]
发表于 2025-5-26 05:53:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目次
设置规则
查察代码文件存储巨细
创建和使用 .gitignore 文件
如果你已经提交过文件,但是现在想加到忽略文件来,看这个

.gitignore 文件用于指定 Git 版本控制系统中必要忽略的文件和目次,这样这些文件就不会被纳入版本控制。下面为你先容一些常见的 .gitignore 设置规则以及差别场景下的示例。
设置规则



  • 注释:以 # 开头的行是注释,会被 Git 忽略。
  • 路径匹配:可以使用通配符来匹配文件或目次名。比方,*.log 表示忽略所有扩展名为 .log 的文件。
  • 目次匹配:以 / 结尾的模式表示目次。比方,build/ 表示忽略 build 目次及其下的所有内容。
  • 取反规则:以 ! 开头的模式表示不忽略匹配的文件或目次。比方,!important.log 表示纵然有规则忽略 .log 文件,important.log 也不会被忽略。

     
    1. 1. 斜杠 / 位置的不同含义
    2. 开头加 /:表示从项目根目录开始匹配。例如,/config.ini 只会忽略项目根目录下的 config.ini 文件,而不会忽略子目录里的 config.ini 文件。
    3. 中间加 /:用于指定路径层次。例如,src/temp/ 表示忽略 src 目录下的 temp 目录及其所有内容。
    4. 2. 点 . 的含义
    5. 在 .gitignore 里,单独的 . 并没有特殊含义。不过,当它和其他字符组合时,就会有不同作用。比如 . 和通配符结合,像 .* 表示忽略所有以点开头的文件或目录,这常用于忽略隐藏文件和目录。
    6. 3. 双星号 **
    7. 双星号 ** 表示任意数量的目录。例如:
    8. **/*.log:不管在项目的哪个目录下,只要是扩展名为 .log 的文件都会被忽略。
    9. src/**/temp/:表示忽略 src 目录下任意层级的 temp 目录及其所有内容。
    10. 4. 问号 ?
    11. 问号 ? 用于匹配单个任意字符。例如,file?.txt 会忽略 file1.txt、file2.txt 等文件,但不会忽略 file.txt。
    12. # 忽略项目根目录下的 config.ini 文件
    13. /config.ini
    14. # 忽略所有 .log 文件
    15. *.log
    16. # 但不忽略 important.log 文件
    17. !important.log
    18. # 忽略 src 目录下任意层级的 temp 目录
    19. src/**/temp/
    20. # 忽略所有以 .bak 结尾且文件名只有一个字符的文件
    21. ?*.bak
    复制代码
     被忽略的文件会表现灰色

 
查察代码文件存储巨细

  1. du -h -d 1
  2. du -h -d 1 example
复制代码



创建和使用 .gitignore 文件


  • 在项目根目次下创建一个名为 .gitignore 的文件。
  • 将上述规则添加到 .gitignore 文件中。
  • 使用 git add .gitignore 将 .gitignore 文件添加到版本控制。
  • 使用 git commit -m "Add .gitignore" 提交更改。
这样,Git 就会根据 .gitignore 文件中的规则忽略相应的文件和目次。
如果你已经提交过文件,但是现在想加到忽略文件来,看这个

  1. 你需要把 pubspec.lock 文件从 Git 的追踪记录中移除,不过本地文件不会被删除。
  2. 可以使用以下命令:
  3. git rm --cached model/library/pubspec.lock
  4. 此命令的作用是把 model/library/pubspec.lock 文件从暂存区移除,但不删除本地文件。
  5. 要是你想一次性移除项目里所有的 pubspec.lock 文件,可以使用通配符:
  6. git rm --cached **/pubspec.lock
  7. 移除文件之后,再提交修改:
  8. git commit -m "Remove tracked pubspec.lock files according to .gitignore"
  9. git push
  10. 验证步骤
  11. 先确保 .gitignore 文件里已经添加了 *.pubspec.lock 规则。
  12. 运用上述命令把 pubspec.lock 文件从 Git 追踪记录中移除并提交修改。
  13. 再次修改 model/library/pubspec.lock 文件,然后使用 git status 命令查看状态,
  14. 此时该文件应该不会再显示为修改状态。
  15. 通过以上步骤,就能让 .gitignore 里的规则生效,忽略 pubspec.lock 文件的更改。
  16. 如果你有多个不同 model 目录下的 pubspec.lock 文件需要从 Git 追踪中移除,
  17. 你可以逐个使用 git rm --cached 命令来移除它们,像所列举的:
  18. git rm --cached **/pubspec.lock
  19. ** 是一个通配符,表示任意数量的目录层级,这样就能匹配到所有子目录下的 pubspec.lock 文件。
  20. 在使用 git rm --cached 时,文件只会从 Git 的追踪记录中移除,而不会从你的本地文件系统中删除,
  21. 这符合你不删除文件的需求。
复制代码

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表