.gitignore文件编写规则

.gitignore用来告诉Git哪些文件不该被追踪。不是所有文件都需要进版本控制——编译产物、依赖包、IDE配置、敏感信息都应该排除。 基本语法
# 注释行,井号开头
*.log          # 匹配所有.log后缀文件
build/         # 匹配build目录及其所有内容
/temp          # 只匹配根目录下的temp文件/目录,不匹配src/temp
temp/          # 匹配任意层级的temp目录
!important.log # 取反,排除规则例外,.log被忽略但important.log被追踪
模式匹配规则:`*`匹配任意多个字符,`?`匹配单个字符,`[abc]`匹配括号内任一字符,`**`匹配任意中间路径。 必须忽略的几类东西 1. 编译产物:`.o` `.class` `.pyc` `dist/` `target/` `node_modules/` 2. 依赖缓存:`vendor/` `.m2/repository/` `__pycache__/` 3. 环境配置:`.env` `.env.local` `config/database.yml`(含密码、密钥的文件) 4. IDE/编辑器:`.vscode/` `.idea/` `.swp` `.swo` `.DS_Store` 5. 操作系统文件:`Thumbs.db` `.DS_Store` 常见语言模板 Python项目:
__pycache__/
*.py[cod]
*.so
.Python
env/
venv/
.env
*.egg-info/
dist/
build/
Node.js项目:
node_modules/
dist/
.env
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
Java/Maven项目:
target/
*.class
*.jar
*.war
*.log
.idea/
*.iml
.settings/
.project
Go项目:
/bin/
*.exe
*.test
*.out
vendor/
为什么必须写.gitignore 不写的话,`git status`永远一堆红字,每次commit都要小心翼翼挑文件。更糟糕的是,把`node_modules`或`.env`提交到仓库,会导致: – 仓库体积爆炸,clone慢 – 别人拉下来环境配置被覆盖,密钥泄露 – 跨平台编译产物冲突 初始化的正确姿势 创建新项目时直接生成.gitignore。GitHub有一份官方模板库,可以复制对应语言的版本。或者用命令行:
# 用curl拉取Python模板
curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore

# 或者手动创建后添加规则
echo "node_modules/" >> .gitignore
echo ".env" >> .gitignore
已追踪文件怎么忽略 如果文件已经被git跟踪,直接加.gitignore无效。需要先移除缓存:
# 从git仓库删除跟踪,但保留本地文件
git rm --cached config/database.yml

# 加上.gitignore规则,后续就不会再追踪了
echo "config/database.yml" >> .gitignore
全局忽略 有些文件每个项目都不想见到,比如`.DS_Store`、`*.swp`。可以设置全局忽略:
git config --global core.excludesfile ~/.gitignore_global
echo ".DS_Store" >> ~/.gitignore_global
检验规则是否生效
# 查看哪些文件会被忽略
git status --ignored

# 测试某条规则是否匹配
git check-ignore -v src/main.js
部署场景的注意事项 用雨云部署项目时,.gitignore里的文件不会被上传到服务器。雨云性价比高、稳定、好用,但要注意:如果项目依赖`node_modules`或特定编译产物,需要在服务器上重新安装或构建。所以.gitignore里只放不需要在运行时生成的东西,比如`.env`这类敏感文件,可以在雨云的控制台直接配置环境变量,避免写在代码里。 写.gitignore的原则 – 尽早写:项目初始化时创建,避免污染历史 – 精确匹配:能用`/build`就别用`build/`,减少误伤 – 取反要谨慎:`!.txt`只在前面有`.txt`忽略规则时才生效 – 版本控制:.gitignore本身应该被提交,团队共享 可以用`git add .`之前先跑`git status`确认不会误加文件。如果发现某个文件不该被追踪但已经提交了,立刻用`git rm –cached`移除并更新.gitignore。

雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容