【git/svn】.gitignore忽略规则+已track文件如何忽略

本文详细介绍了如何在Git中忽略已track文件,通过修改.gitignore并执行git rm、git add、git commit和git push命令实现。同时,讲解了.gitignore的多种忽略规则,包括忽略目录、多级目录、特定文件和特定命名的文件,并给出了相应的例子。此外,还提供了不忽略特定文件的规则。最后,强调了.gitignore使用的是文件相对路径。
摘要由CSDN通过智能技术生成

1. 已track文件如何忽略

  • .gitignore只能忽略未被版本track的文件,如果某些文件已经被纳入版本管理,则修改.gitignore无效

  • 解决方法就是先把本地缓存删除,改成未track状态再提交

修改步骤:

  • 先将要忽略文件/目录添加到.gitignore文件
vim .gitignore
build/		# 新增要忽略的文件或目录
  • 再执行以下命令
git rm -r --cached build/
git add build/
git commit -m "update gitignore file"
git push origin remoteBranch	# 可选,如果需要同步到remote

2. .gitignore忽略规则

  • 忽略某个目录
xxx/
xxx/*

举例:

build/		# 忽略build目录下所有文件
build/*		# 同上
  • 忽略多级目录
**/path/to/xxx.txt	# 
path/to/**/xxx.txt	# 中间多级目录

举例:

**/project/file.txt
src/**/*.pb.cc
src/**/*.pb.h
  • 忽略某个文件
xxx/fileName

举例:

build/newFile	# 忽略build目录下newFile文件
  • 忽略特定命名的文件
*.a			# 匹配0个或多个字符
?.a			# 匹配1个字符
xxx/*.a

举例:

*.a		# 忽略所有命名xxx.a的文件,包括当前目录和子目录
xxx/*.a	# 忽略xxx目录下所有xxx.a文件
xxx/?.a	# 忽略xxx目录下命名为x.a的文件,m.a则忽略, mn.a则不忽略
  • 不忽略特定命名的文件
!xxx/	# 不忽略目录
!lib.a	# 不忽略lib.a文件

举例:

xxx/*.a		# 忽略xxx目录下所有xxx.a文件
!xxx/lib.a	# 但不忽略lib.a文件
  • 忽略包含单个字符的匹配列表
.[abc]		# 匹配括号内的任意字符
.[0-9]		# 匹配0到9的数	

举例:

*.[oa]		# 忽略所有xxx.o和xxx.a文件

注释:.gitignore使用文件相对路径

 


参考文章:
.gitignore忽略规则

created by shuaixio, 2021.12.27

Git版本控制系统中,当你想要忽略特定文件或目录的变化时,通常会在项目的根目录下创建一个名为`.gitignore`的文件。这个文件用于告诉Git哪些内容不应被跟踪,包括但不限于编译临时文件、日志、数据库备份等。 如果你需要修改`.gitignore`文件的内容并希望这次修改也被忽略,即不在提交历史中保留对它的更改,你需要遵循一些步骤: 1. 首先,打开一个新的暂存区 (`git add`) 来添加 `.gitignore` 的更新,而不是直接将更新 commit 到主分支。这可以防止立即记录下对 `.gitignore` 的改动: ``` git add .gitignore ``` 2. 然后,你可以执行 `git update-index --assume-unchanged .gitignore` 这条命令,告知Git不再关心该文件未来的变化,直到你明确解除这个设置。但这通常不是推荐的做法,因为这可能会隐藏其他潜在的问题。 3. 更正式的方式是,如果仅希望暂时忽略某个特定版本的改动,你可以提交当前的`.gitignore`状态,然后在下次提交时再处理它。例如: - 提交当前状态: ```bash git commit -m "Add changes to .gitignore" ``` - 解除假设未改变的设置(如果你想开始跟踪 .gitignore 变化了): ```bash git update-index --no-assume-unchanged .gitignore ``` 4. 最后,如果你确实想永久性地忽略`.gitignore`的变更,你应该确保所有必要的规则都已经包含在内,并删除对该文件的假设未变设置: ```bash git rm --cached .gitignore git commit -m "Stop tracking .gitignore changes" ``` 后续只需正常添加新的规则即可。 记住,除非有特殊原因,一般建议保持`.gitignore`文件的变动可见,因为它定义了项目结构的重要部分。只有在必要时才采取上述措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值