gitignore 总结

git自动忽略空文件夹

 

.gitignore 修改后:

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

1

2

3

git rm -r --cached .

git add .

git commit -m 'update .gitignore'

 

区分大小写

直接配置git更省事儿

git config --global core.ignorecase false

 

Git 的 .gitignore 配置

.gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利,以下是个人对于配置 .gitignore 的一些心得。

1、配置语法:

  以斜杠“/”开头表示目录;

  以星号“*”通配多个字符;

  以问号“?”通配单个字符

  以方括号“[]”包含单个字符的匹配列表;

  以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

 

  此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

2、示例:

  (1)规则:fd1/*

      说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;

  (2)规则:/fd1/*

      说明:忽略根目录下的 /fd1/ 目录的全部内容;

  (3)规则:

/*

!.gitignore

!/fw/bin/

!/fw/sf/

说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;

 

【例子】

# 忽略*.o和*.a文件

 *.[oa]

# 忽略*.b和*.B文件,my.b除外

*.[bB]

!my.b

# 忽略dbg文件和dbg目录

dbg

# 只忽略dbg目录,不忽略dbg文件

dbg/

# 只忽略dbg文件,不忽略dbg目录

dbg

!dbg/

# 只忽略当前目录下的dbg文件和目录,子目录的dbg不在忽略范围内

/dbg

 

<think> 我们正在讨论.gitignore文件的编写方法。根据引用内容,我们可以总结如下: 1. .gitignore文件的作用:告诉Git哪些文件或目录应该被忽略,不纳入版本控制。常见忽略的有敏感信息、自动生成的文件、系统/IDE临时文件、依赖目录等。[^1] 2. .gitignore文件的基本语法: - 忽略特定文件:`filename.env` - 忽略特定目录:`directory/` - 使用通配符:`*.log` 忽略所有.log文件 - 例外规则:`!important.log`(不忽略important.log) - 递归忽略:`**/temp/` 忽略所有层级的temp目录 - 注释:以`#`开头 3. 多级.gitignore文件:可以在子目录中放置额外的.gitignore文件,规则仅作用于该目录。[^3] 4..gitignore文件不起作用时的解决方案(因为文件已被纳入版本控制): - 清除缓存:`git rm -r --cached .` - 重新添加:`git add .` - 重新提交:`git commit -m 'update .gitignore'`[^2][^4] 现在,针对用户的问题“gitignore文件的填写方法”,我们可以分步骤详细说明。 </think>### .gitignore文件编写指南 .gitignoreGit用于**指定忽略规则**的配置文件,通过精确的语法控制哪些文件/目录不被纳入版本控制。以下是核心要点: --- #### 一、基础语法规则 | 语法 | 作用示例 | 说明 | |---------------------|----------------------------|-----------------------------| | `*.log` | 忽略所有.log文件 | 通配符`*`匹配任意字符 | | `/debug.log` | 仅忽略根目录的debug.log | 开头`/`表示根目录 | | `temp/` | 忽略所有temp目录 | 结尾`/`表示目录 | | `!important.log` | 不忽略important.log | `!`表示例外规则 | | `**/cache/` | 忽略所有层级的cache目录 | `**`匹配多级目录 | | `# 注释文本` | 解释规则用途 | `#`开头表示注释行 | > 示例:忽略Python项目的常见文件 > ``` > # Python > __pycache__/ > *.py[cod] > > # IDE > .vscode/ > .idea/ > > # 环境变量 > .env > !.env.example # 例外:保留示例文件 > ``` --- #### 二、多级配置策略 [^3] 1. **全局配置**(根目录): ```bash # 项目根目录的.gitignore node_modules/ .DS_Store ``` 2. **局部配置**(子目录): ```bash # src/tests/.gitignore *.tmp test_output/ ``` > ✅ 子目录规则**仅作用于当前目录** --- #### 三、常见问题解决 1. **规则不生效** → 文件已被Git跟踪: ```bash git rm -r --cached . # 清除缓存 git add . # 重新跟踪 git commit -m "更新.gitignore规则" ``` [^2][^4] 2. **忽略目录但保留空目录**: 创建`.gitkeep`文件: ```bash mkdir logs/ touch logs/.gitkeep ``` 在.gitignore中添加: ``` logs/* !logs/.gitkeep ``` --- #### 四、最佳实践 1. **敏感数据防护**: ``` # 永远忽略密钥文件 *.key config/credentials.yml ``` 2. **语言专用模板**: - 访问 [github/gitignore](https://github.com/github/gitignore) 获取官方模板 - 例如 Python:`curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore` 3. **验证规则**: ```bash git check-ignore -v 文件名 # 检查文件是否被忽略 ``` > ⚠️ 注意:`.gitignore` **本身需提交到仓库**,否则规则对协作者无效!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值