【Git】如何添加和更新.gitignore文件
背景
在Git项目中,经常会有一些文件我们不希望被版本控制体系追踪,例如:
- IDE配置文件(.idea/、.vscode/等)
- 操纵体系生成的文件(.DS_Store等)
- 编译生成的文件(.class、.jar等)
- 依赖文件目录(node_modules/等)
- 个人配置文件(.obsidian/等)
这时我们需要使用.gitignore文件来告诉Git忽略这些文件。
操纵步骤
1. 创建.gitignore文件
在项目根目录下创建.gitignore文件,添加需要忽略的文件规则。以下是一个常用的.gitignore文件模板:
- # macOS system files
- .DS_Store
- .AppleDouble
- .LSOverride
- Icon
- ._*
- # IDE - IntelliJ IDEA
- .idea/
- *.iml
- *.iws
- *.ipr
- out/
- .idea_modules/
- # IDE - VSCode
- .vscode/
- *.code-workspace
- # Obsidian files
- .obsidian/
- # Compiled files
- *.class
- *.jar
- *.war
- *.ear
- *.zip
- *.tar.gz
- *.rar
- # Logs and databases
- *.log
- *.sqlite
- *.db
- # Node
- node_modules/
- npm-debug.log*
- yarn-debug.log*
- yarn-error.log*
- # Python
- __pycache__/
- *.py[cod]
- *$py.class
- .Python
- env/
- build/
- develop-eggs/
- dist/
- downloads/
- eggs/
- .eggs/
- lib/
- lib64/
- parts/
- sdist/
- var/
- wheels/
- *.egg-info/
- .installed.cfg
- *.egg
- # Temporary files
- *.swp
- *.swo
- *~
复制代码 2. 清除Git缓存
假如有些文件已经被Git追踪,仅仅添加.gitignore文件是不够的,需要先清除Git缓存:
- # 删除Git缓存(不会删除实际文件)
- git rm -r --cached .
复制代码 3. 添加新的.gitignore文件
- # 添加.gitignore文件到Git
- git add .gitignore
- # 添加其他文件
- git add .
复制代码 4. 提交更改
- # 提交更改
- git commit -m "Add .gitignore file and remove ignored files from git"
复制代码 5. 推送到远程堆栈
- # 推送到远程仓库
- git push origin master # 或者其他分支名
复制代码 注意事项
- .gitignore只能忽略那些原来没有被追踪的文件,假如某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
- 假如需要忽略已经被追踪的文件,必须先删除当地缓存,然后提交。
- .gitignore文件自己应该被提交到版本库中。
- 规则匹配说明:
- # 表现注释
- * 表现任意多个字符
- ? 表现任意单个字符
- [] 表现单个字符的匹配列表
- ! 表现不忽略匹配到的文件或目录
- / 末端表现目录
- / 开头表现根目录
常见题目
- Q: 修改.gitignore后为什么还是无法忽略文件?
A: 大概是因为文件已经被Git追踪,需要清除缓存:git rm -r --cached .
- Q: 如何忽略文件但保留目录?
A: 在.gitignore中使用:directory/*,这样会忽略目录中的文件但保留目录自己。
- Q: 如何忽略特定文件但不忽略某个特定文件?
A: 使用!符号:
参考资料
- Git官方文档 - gitignore
- GitHub - gitignore模板
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |