.gitignore 如何拆分为多个文件?

2023-09-14 14:12:20 +08:00
 cheneydog

这个文章的第六点有提到一种方法: https://www.python100.com/html/41V3I24XE5OP.html

我试验了好像不成功,是版本不对还是被忽悠了?

2449 次点击
所在节点    git
17 条回复
cheneydog
2023-09-14 14:21:11 +08:00
如果用 IDEA 的话,.idea 目录全都不提交的吧,有什么有用的东西么?为什么大家的忽略规则写那么麻烦,一个一个的忽略。
hicdn
2023-09-14 14:23:47 +08:00
可以用 ~/.gitignore_global
cheneydog
2023-09-14 14:35:10 +08:00
@hicdn 规则还堆在一起呀。不能分为 idea 的,自定义的,java 的,这个么分开么?
itbeihe
2023-09-14 14:35:28 +08:00
你问题描述不够清晰,没有描述具体场景,我针对你的问题拆解了 2 个场景,不知道你具体想解决哪个场景?

场景 1. 项目内需要多个 gitignore 文件?

这个在官方推荐的《 Git Pro 》中有说明:
“在最简单的情况下,一个仓库可能只根目录下有一个 .gitignore 文件,它递归地应用到整个仓库中。 然而,子目录下也可以有额外的 .gitignore 文件。子目录中的 .gitignore 文件中的规则只作用于它所在的目录中。 ( Linux 内核的源码库拥有 206 个 .gitignore 文件。)“

地址: https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%AE%B0%E5%BD%95%E6%AF%8F%E6%AC%A1%E6%9B%B4%E6%96%B0%E5%88%B0%E4%BB%93%E5%BA%93#_ignoring

场景 2:多个项目都想隐藏同样一批文件,如 mac 的. DS_Store 文件:
可以通过配置全局忽略文件来实现。
同样可以参照: https://git-scm.com/book/zh/v2/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-%E9%85%8D%E7%BD%AE-Git#_core_excludesfile

找个好教材学习 git 真的很有必要。国内二手文章真是坑人。
dzdh
2023-09-14 14:38:35 +08:00
itbeihe
2023-09-14 14:53:07 +08:00
@cheneydog 自定义的,idea 的也就几十行啊,放根 ignore 中呗。然后各自项目放子文件夹,放各自项目里呗。
oott123
2023-09-14 17:05:32 +08:00
这个网站感觉内容是 AI 生成的……不存在引用其它文件的办法。
cheneydog
2023-09-14 17:07:27 +08:00
@itbeihe 跟场景 2 接近,但也不是。

/项目 1
.gitignore
idea.gitignore
python.gitignore

---

/项目 2
.gitignore
idea.gitignore
java.gitignore
maven.gitignore

---

/项目 3
.gitignore
maven.gitignore

---

/项目 4
.gitignore
java.gitignore
python.gitignore
js.gitignore

就是想像代码一样分模块写么
itbeihe
2023-09-14 17:16:16 +08:00
@cheneydog 你考虑下现在的常规处理方案

├── gitignore_global (用户全局 gitignore )
├── 混合项目 git-a
│   ├── java 子项目
│   │   └── .gitignore ( java )
│   ├── js 子项目
│   │   └── .gitignore ( js )
├── .gitignore (+通用)
├── 混合项目 git-b
│   ├── python 子项目
│   │   └── .gitignore ( python )
│   ├── js 子项目
│   │   └── .gitignore ( js )
│   ├── java 子项目
│   │   └── .gitignore ( java )
├── .gitignore (idea+通用)
flyqie
2023-09-14 17:43:22 +08:00
好奇为什么要拆分。。
yolee599
2023-09-14 17:52:52 +08:00
试试这个:
cat idea.gitignore java.gitignore maven.gitignore > .gitignore
flyqie
2023-09-14 17:56:29 +08:00
@yolee599 #11

楼主说的应该是类似支持 import xxx.gitignore 这样的语法,不是手动合并。
shawndev
2023-09-14 18:19:34 +08:00
SmallZheng
2023-09-14 18:38:48 +08:00
@yolee599 #11 再把 .gitignore 加到 .gitignore 里?
ysc3839
2023-09-15 06:34:40 +08:00
大概是被骗了,他说在 .gitignore 文件中添加来进行引用,但是 git 怎么知道你是要引用还是要忽略那个文件呢?
目前能实现的是用 git config 设置
https://mednoter.com/gitignore-global.html
AoEiuV020JP
2023-09-15 10:56:34 +08:00
好奇你的 gitignore 是有几千行?
fpure
2023-09-15 11:23:46 +08:00
从来没遇到 gitignore 需要拆分的情况

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/973738

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX