返回介绍

Ignore File 忽略文件

发布于 2024-06-16 10:29:35 字数 2510 浏览 0 评论 0 收藏 0

Git 忽略规则

在 git 中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中。实际上 .gitignore 可以放在任何子目录中, .gitignore 对当前目录和当前目录的子目录有效。

.gitignore 文件的方法(如果没有这个文件,则需自己手工建立此文件)。这个文件每一

行保存了一个匹配的规则例如:

# 此为注释 – 将被 Git 忽略

*.sample         # 忽略所有 .sample 结尾的文件
!lib.sample      # 但 lib.sample 除外
/TODO       # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/      # 忽略 build/ 目录下的所有文件
doc/*.txt   # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
  • 忽略路径的根是当前目录,例如'/TODO'是忽略当前目录下的 TOTO 目录下的所有文件,而不是系统根目录。
  • 可以使用通配符,参见 Linux 手册: glob(7)。例如:星号( * )代表任意多字符,问号代表一个任意字符,方括号内代表可选字符范围。
  • 如果名称的最后一个字符是 / , 表示要忽略的是整个目录,同名文件不忽略。否则,同名的目录和文件都忽略。
  • 通过在名称前加一个感叹号( ! ),表示不忽略。

对某个文件取消跟踪,这种方式用于已经 add 了,但不想 cimmit,可以删除添加。

  • git rm --cached readme1.txt 删除 readme1.txt 的跟踪,并保留在本地。
  • git rm --f readme1.txt 删除 readme1.txt 的跟踪,并且删除本地文件。

然后 git commit 即可。但是 git status 查看状态时还是会列出来

Git 忽略规则和 .gitignore 规则不生效的解决办法

.gitignore 规则不生效的解决办法

把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore 只能

忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore 是

无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

独享式忽略

.gitignore 文件默认会被添加到版本库中,这样在别人获取代码时,会一起得到 .gitignore 文件。 所以称之为“共享式”忽略,与之对应的忽略“独享”式忽略,独享式的忽略就不会因为因为版本共享给他人。只在本地版本库中生效。独享式忽略有两种。

  • 一种是针对具体版本库的忽略,即在版本库 .git 目录下的一个文件 .git/info/exclude 来设置文件忽略。
  • 另一种是全局的“独享式”忽略。 即通过 Git 的配置变量 core.excludesfile 指定一个忽略文件,其设置的忽略在其作用域有效。

忽略已经提交的

忽略已经提交的,需要将文件从跟踪中删除,然后提交一个新的节点。

git rm --cached -r .idea
git add .
git commit -m "ignore track file"
git rm -r --cached .   //不删除本地文件

git rm -r --f .   //删除本地文件,会将工作区中的文件全部删除。

需要注意的是,即便不删除本地文件,在向远程推的时候,也会导致文件被删除,这是因为提交节点里被删除了。如果想要保留文件,例如服务器上的文件,需要先备份文件再推送,或者从历史节点中找回。

又时候,想要改变 ignore 文件的整个内容,这时候由于添加的比较多,不知道添加了哪些文件是已经跟踪了的。 无法一一清楚跟踪的文件。可以使用如下步骤,先全部清楚,然后取消非 ignore 的文件的清除操作

git rm -r --cached . # 由于是目录,需要加 -r

这时候,所有的文件都被 delete 掉了

git status

不确定从新 commit 会不会把新的文件都给提交成自己的文件,所以不能提交,可以取消不是 ignore 的更改。

git add .
git checkout .

然后将剩下的被删除的文件提交即可

git commit -m "ignore file"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文