【Git】如何添加和更新.gitignore文件

诗林  金牌会员 | 2025-2-19 03:20:42 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 698|帖子 698|积分 2094

【Git】如何添加和更新.gitignore文件

背景

在Git项目中,经常会有一些文件我们不希望被版本控制体系追踪,例如:


  • IDE配置文件(.idea/、.vscode/等)
  • 操纵体系生成的文件(.DS_Store等)
  • 编译生成的文件(.class、.jar等)
  • 依赖文件目录(node_modules/等)
  • 个人配置文件(.obsidian/等)
这时我们需要使用.gitignore文件来告诉Git忽略这些文件。
操纵步骤

1. 创建.gitignore文件

在项目根目录下创建.gitignore文件,添加需要忽略的文件规则。以下是一个常用的.gitignore文件模板:
  1. # macOS system files
  2. .DS_Store
  3. .AppleDouble
  4. .LSOverride
  5. Icon
  6. ._*
  7. # IDE - IntelliJ IDEA
  8. .idea/
  9. *.iml
  10. *.iws
  11. *.ipr
  12. out/
  13. .idea_modules/
  14. # IDE - VSCode
  15. .vscode/
  16. *.code-workspace
  17. # Obsidian files
  18. .obsidian/
  19. # Compiled files
  20. *.class
  21. *.jar
  22. *.war
  23. *.ear
  24. *.zip
  25. *.tar.gz
  26. *.rar
  27. # Logs and databases
  28. *.log
  29. *.sqlite
  30. *.db
  31. # Node
  32. node_modules/
  33. npm-debug.log*
  34. yarn-debug.log*
  35. yarn-error.log*
  36. # Python
  37. __pycache__/
  38. *.py[cod]
  39. *$py.class
  40. .Python
  41. env/
  42. build/
  43. develop-eggs/
  44. dist/
  45. downloads/
  46. eggs/
  47. .eggs/
  48. lib/
  49. lib64/
  50. parts/
  51. sdist/
  52. var/
  53. wheels/
  54. *.egg-info/
  55. .installed.cfg
  56. *.egg
  57. # Temporary files
  58. *.swp
  59. *.swo
  60. *~
复制代码
2. 清除Git缓存

假如有些文件已经被Git追踪,仅仅添加.gitignore文件是不够的,需要先清除Git缓存:
  1. # 删除Git缓存(不会删除实际文件)
  2. git rm -r --cached .
复制代码
3. 添加新的.gitignore文件

  1. # 添加.gitignore文件到Git
  2. git add .gitignore
  3. # 添加其他文件
  4. git add .
复制代码
4. 提交更改

  1. # 提交更改
  2. git commit -m "Add .gitignore file and remove ignored files from git"
复制代码
5. 推送到远程堆栈

  1. # 推送到远程仓库
  2. git push origin master  # 或者其他分支名
复制代码
注意事项


  • .gitignore只能忽略那些原来没有被追踪的文件,假如某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
  • 假如需要忽略已经被追踪的文件,必须先删除当地缓存,然后提交。
  • .gitignore文件自己应该被提交到版本库中。
  • 规则匹配说明:

    • # 表现注释
    • * 表现任意多个字符
    • ? 表现任意单个字符
    • [] 表现单个字符的匹配列表
    • ! 表现不忽略匹配到的文件或目录
    • / 末端表现目录
    • / 开头表现根目录

常见题目


  • Q: 修改.gitignore后为什么还是无法忽略文件?
    A: 大概是因为文件已经被Git追踪,需要清除缓存:git rm -r --cached .
  • Q: 如何忽略文件但保留目录?
    A: 在.gitignore中使用:directory/*,这样会忽略目录中的文件但保留目录自己。
  • Q: 如何忽略特定文件但不忽略某个特定文件?
    A: 使用!符号:
    1. *.log
    2. !important.log
    复制代码
参考资料



  • Git官方文档 - gitignore
  • GitHub - gitignore模板

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

诗林

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表