> 技术文档 > Sourcetree——使用.gitignore忽略文件或者文件夹_sourcetree忽略文件

Sourcetree——使用.gitignore忽略文件或者文件夹_sourcetree忽略文件


一、为何需要文件忽略机制?

1.1 为什么要会略?

对于开发者而言,明智地选择忽略某些文件类型,能带来三大核心优势:

  • 仓库纯净性:避免二进制文件、编译产物等污染代码库

  • 安全防护:防止敏感信息(如API密钥、数据库凭证)意外泄露

  • 效率提升:减少无意义的版本追踪,加速克隆和拉取操作

1.2 通常忽略那些文件?

典型需忽略文件类型

文件类别 常见示例 系统生成文件 .DS_StoreThumbs.dbDesktop.ini 编译产物 *.class(Java)、*.o(C++)、*.pyc(Python)、/dist/目录 依赖管理目录 node_modules/vendor/target/ 开发环境文件 .idea/.vscode/.env 日志与临时文件 *.log*.tmpnpm-debug.log*

示例:

我只修改了.cmd文件,但提交修改的时候,有很多编译产物

二、.gitignore配置深度解析

2.1 文件作用域与优先级

# 层级生效机制(从上到下优先级递减)
1. 项目根目录/.gitignore         # 作用于整个项目
2. 子目录/.gitignore                # 作用于该目录及其子目录
3. $GIT_DIR/info/exclude      # 本地仓库级配置
4. ~/.gitignore_global             # 全局配置(需执行git config --global core.excludesfile ~/.gitignore_global)

2.2 高级语法规则

# 基础匹配
*.log                    # 所有.log文件
!error.log             # 排除规则(保留error.log)

# 目录匹配
build/                  # 忽略所有build目录
doc/*.txt             # 忽略doc目录下txt文件(不递归子目录)

# 通配符扩展
temp?                # 匹配temp后接一个字符的文件(如tempa、temp1)
config.[tj]s          # 匹配config.ts和config.js

# 注释与范围
[0-9].csv             # 匹配数字开头的csv文件
# 重要:不要提交密钥文件
secret.key

.gitignore 的规则是 从上到下逐行匹配 的,后面的规则可以覆盖前面的规则。

否定规则(!)是唯一可以覆盖前面忽略规则的方式。 

三、Sourcetree的可视化设置

3. 1首次提交.gitignore

3.1.1点击设置

3.1.2在仓库设置中选择高级,点击编辑。 

3.3.3在gitignore中添加需要忽略的文件。

可以使用gitignore.io生成模板

以下是一个常用的.gitignore文件模板,可根据个人项目需求,按照.gitignore配置的语法规则2.2,进行增删改查。

# macOS system files.DS_Store.AppleDouble.LSOverrideIcon._*# IDE - IntelliJ IDEA.idea/*.iml*.iws*.iprout/.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# Nodenode_modules/npm-debug.log*yarn-debug.log*yarn-error.log*# Python__pycache__/*.py[cod]*$py.class.Pythonenv/build/develop-eggs/dist/downloads/eggs/.eggs/lib/lib64/parts/sdist/var/wheels/*.egg-info/.installed.cfg*.egg# Temporary files*.swp*.swo*~

然后重新提交就好啦,这里.gitignore文件也要提交。

一定注意.gitignore文件要提交成功下次才能忽略设置的文件或目录! 

 3.2对于已经被git追踪的文件

如果是第一次提交,就会发现忽略文件已经没有了,不是第一次的这个时候你要是提交,就会发现你想要忽略的文件要是有改动,依然让你提交,这是因为这些文件已经加入git的版本控制库了,仅仅添加.gitignore文件是不够的,需要先清除缓存才行。

3.2.1清除Git缓存:

# 删除Git缓存(不会删除实际文件)git rm -r --cached .

3.2.2 添加新的.gitignore文件,提交更改

# 添加.gitignore文件到Gitgit add .gitignore# 添加其他文件git add .# 提交更改git commit -m \"Add .gitignore file and remove ignored files from git\"

3.3.3 推送到远程仓库

# 推送到远程仓库git push origin master # 或者其他分支名

 示例问题解决:(这里我尝试修改了其他文件)

参考连接:

1.【Git】如何添加和更新.gitignore文件_git添加ignore-CSDN博客

2.Sourcetree软件中添加git的.gitignore文件忽略某些文件提交_sourcetree忽略文件-CSDN博客