Git 过滤文件,控制上传

本文介绍如何在Git中配置文件忽略规则,包括针对单一项目的.gitignore文件、全局配置以及单个项目下的.git/info/exclude文件的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Git的版本控制中,可能有些文件是不需要加入控制的,那我们在提交代码时就需要忽略这些文件,下面讲讲应该怎么给Git配置一些忽略规则。


有三种方法可以忽略掉这些文件,这三种方法都能达到目的,只不过适用情景不一样。


(1).针对单一工程排除文件,这种方式会让这个工程的所有修改者在克隆代码的同时,也能克隆到过滤规则,而不用自己再写一份,这就能保证所有修改者应用的都是同一份规则,而不是张三自己有一套过滤规则,李四又使用另一套过滤规则,个人比较喜欢这个。配置步骤如下:

                

在工程根目录下建立.gitignore文件,将要排除的文件或目录 写到.gitignore这个文件中,有两种写入方法。

(a)使用命令行增加排除文件  
 
排除以.class结尾的文件  echo “*.class” >.gitignore (>> 是在文件尾增加,> 是删除已经存在的内容再增加),之后会在当前目录下生成一个.gitignore的文件。
排除bin目录下的文件     echo “bin/” >.gitignore

(b)最方便的办法是,用记事本打开,增加需要排除的文件或目录,一行增加一个,如:


  *.class
  *.apk
  bin/
  gen/
  .settings/
  proguard/
  
(2).全局设置排除文件,这会在全局起作用,只要是Git管理的工程,在提交时都会自动排除不在控制范围内的文件或目录。这种方法对开发者来说,比较省事,只要一次全局配置,不用每次建立工程都要配置一遍过滤规则。但是这不保证其他的开发者在克隆你的代码后,他们那边的规则跟你的是一样的,这就带来了代码提交过程中的各种冲突问题。配置步骤如下:


(a)像方法(1)一样,也需要建立一个.gitignore文件,把要排除的文件写进去。

        (b) 但在这里,我们不规定一定要把.gitnore文件放到某个工程下面,而是任何地方,比如我们这里放到了Git默认的Home路径下,在我的windows上就是C:\Users\zhbpeng

        (c)使用命令方式可以配置全局排除文件 git config --global core.excludesfile ~/.gitignore,你会发现在~/.gitconfig文件中会出现excludesfile = c:/Users/zhbpeng/.gitignore。说明Git把文件过滤规则应用到了Global的规则中。


(3). 单个工程设置排除文件,在工程目录下找到.git/info/exclude,把要排除的文件写进去:
  *.class
  *.apk
  bin/
  gen/
  .settings/
  proguard/

这种方法就不提倡了,只能针对单一工程配置,而且还不能将过滤规则同步到其他开发者,跟方法(1)(2)比较起来没有一点优势。


### 如何在 Git 中使用 `.gitignore` 文件筛选要上传文件 `.gitignore` 是一种用于配置 Git 不追踪某些特定文件或目录的重要机制。以下是关于如何设置和使用 `.gitignore` 的详细说明: #### 创建 `.gitignore` 文件 为了使 Git 能够识别哪些文件不需要被纳入版本控制,首先需要创建一个名为 `.gitignore` 的文件。该文件可以手动创建或者通过 IDE 自动生成。 ```bash touch .gitignore ``` 此命令会在当前目录下创建一个空白的 `.gitignore` 文件[^2]。 --- #### 配置 `.gitignore` 文件的内容 在 `.gitignore` 文件中,可以通过以下方式指定不希望被 Git 跟踪的文件或目录: - **忽略某个具体文件**:直接写出文件名即可。 ``` example.txt ``` - **忽略某一类文件**:使用通配符 `*` 来匹配模式。 ``` *.log ``` - **忽略整个目录**:以 `/` 结尾表示目录。 ``` /build/ ``` - **排除已经忽略的文件/目录**:如果想让某项重新被跟踪,在前面加上感叹号 `!`。 ``` !important.log ``` 对于 Android 开发者而言,通常会忽略编译后的产物以及本地环境变量等敏感数据。例如: ``` *.apk /build/ .gradle/ /local.properties ``` 这是一份典型的适用于 Android 项目的 `.gitignore` 设置[^3]。 --- #### 添加 `.gitignore` 到版本库 当完成 `.gitignore` 文件编写之后,需将其加入到 Git 版本控制系统之中,这样团队成员都可以共享相同的忽略规则。 ```bash git add .gitignore git commit -m "Add .gitignore file" ``` 上述操作将把 `.gitignore` 文件本身也作为项目的一部分保存下来。 --- #### 处理已有缓存中的文件 假如部分不应该受控的文件已经被误推送到远程仓库,则仅靠更新 `.gitignore` 并不足以解决问题。此时应先移除这些文件的索引状态而不删除实际磁盘上的副本,然后再重新提交更改。 ```bash git rm -r --cached . git add . git commit -m 'Update .gitignore and remove cached files' ``` 这条指令序列的作用是从 Git 缓存区清除所有文件记录,接着按照最新的 `.gitignore` 定义决定真正需要保留下来的条目[^1]。 另外需要注意的是,一旦某些文件曾经被推送至远端服务器,即便后来加入了 `.gitignore`,它们依旧会被持续同步给其他克隆者。因此建议尽早规划好初始阶段的忽略策略,避免不必要的麻烦发生[^4]。 --- #### 测试 `.gitignore` 是否生效 最后一步是对新设定好的过滤逻辑做有效性验证。比如新增加了一个应当被屏蔽掉的新文档试试看能否成功避开;又或者是故意篡改那些理论上已被列入黑名单的目标看看会不会触发异常行为等等。 --- ### 总结 综上所述,合理运用 `.gitignore` 可以为开发者带来诸多便利之处,既简化日常维护流程又能保护隐私信息安全免遭泄露风险。务必记得及时建立专属于各自应用场景下的个性化模板哦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值