rt ,正常项目目录下的 vendor 目录会提交上去,但对 gitHub.com/ 目录下的项目中的 vendor/ 目录进行忽略。
查了一些资料以及问了 gpt ,但都感觉没有生效。
chatgpt:
# Ignore vendor/ directory in github.com/ projects
github.com/*/vendor/
自己也尝试了些:
/Users/stone/go/src/github.com/**/vendor/*
/github.com/**/vendor/
求大佬指导下该怎么配置
尝试了 v 友回复中的几种方式:
echo "vendor/" >> .git/info/exclude
.gitconfig_github
,在 .gitconfig_github
中单独使用 excludesfile = /Users/artist/.gitignore_github
)[includeIf "gitdir:~/go/src/github.com/"]
path = .gitconfig_github
最后只对特殊目录下项目的 .gitignore 就生效了
➜ weaver git:(main) git check-ignore -v vendor/
/Users/artist/.gitignore_github:7:vendor/ vendor/
1
huijiewei 2023-05-16 23:00:26 +08:00
为什么要放在 gitignore_global 里面。放到 github.com 目录里面忽略就好了
|
2
hxy100 2023-05-16 23:04:36 +08:00
你这个需求很奇怪,.gitignore_global 应该不支持这种复杂的配置吧,直接配置单个项目的 .gitignore 就好了,如果忽略的内容需要经常变来变去,可以换个思路,通过 Hook 钩子自动执行命令来更新.gitignore ?
|
3
ryalu OP @huijiewei #1 github.com 下面是从 github 上拉下来的项目仓库,不想对每个仓库的 .gitignore 都加上 vendor/ 忽略。
但是不知道怎么对 github.com/ 目录下的项目配置 .gitignore 。例如这样的项目目录层级: |
4
ryalu OP @hxy100 #2 大多数的项目不需要忽略 vendor/ 目录,但对于 g*/ 这个目录下的项目需要忽略 vendor/ 目录,因为都是拉的开源项目不方便修改 .gitignore 文件,这就导致每次提交的时候都要特别注意下这个
|
5
huijiewei 2023-05-16 23:24:13 +08:00
直接在 github_com 目录下面加一个 .gitignore
``` **/vendor ``` 不行么 |
6
SingeeKing 2023-05-16 23:32:48 +08:00 via iPhone 1
@ryalu 配置 .git/info/exclude 嫌一个个配置麻烦写个脚本一键配置好
|
7
Nile20 2023-05-16 23:37:43 +08:00
这个问题适合认真研究文档,可能不适合 ChatGPT 。我测试下来 work:
写法: github.com/**/vendor/ 目录结构 │ .cute.c │ .gitignore │ ├─github.com │ ├─project │ │ └─vendor │ │ ayaka.c │ │ │ └─vendor │ is.c │ └─vendor pretty.c 效果( git add . -n ): add '.cute.c' add '.gitignore' add 'vendor/pretty.c' |
8
Nile20 2023-05-16 23:41:18 +08:00
没想到目录树发出来是这种效果……看不清层级了。补个路径形式的吧
……补不出来,v2ex 说我在 spamming |
10
ryalu OP @Nile20 #8 我都试过,都没有生效。
.gitignore_global 路径:/Users/stone/.gitignore_global github_com 目录路径: /Users/stone/go/src/github_com/ 然后我在 .gitignore_global 中尝试了: /Users/stone/go/src/github_com/**/vendor/ ~/go/src/github_com/**/vendor/ go/src/github_com/**/vendor/ /github_com/**/vendor/ ...都没有生效。 项目 vendor 的路径是:/Users/stone/go/src/github_com/elastic/go-elasticsearch/vendor 明天再研究 https://git-scm.com/docs/gitignore 看看 |
11
Nile20 2023-05-17 00:01:11 +08:00
|
12
Nile20 2023-05-17 00:09:04 +08:00
你的.gitconfig 中配置的.gitinore_global 生效了么?(要在.gitconfig 里配置并且使用完整路径)
我之前的 Demo 是放在.gitignore 里的,但是刚刚测试放在.gitignore_global 里也生效的。 [core] excludesfile = ~/.gitignore_global |
13
ryalu OP @Nile20 #11 github_com/ 目录下都是克隆下来的项目,每个项目都是独立的 .git,都包含 .gitignore
|
14
ryalu OP 目前看来只有在项目拉下来后手动将 vendor 目录加到 .git/info/exclude 中了
echo "vendor/" >> .git/info/exclude |
15
ryalu OP @Nile20 #12 这个是生效了的。你的 demo 事例中,project 并不是一个独立的 git 仓库,也不包含自己 .gitignore 文件。
|
16
Faithlv 2023-05-17 02:38:14 +08:00 via Android
不应该吧,这种格式会不支持?
|
17
Faithlv 2023-05-17 02:47:03 +08:00 via Android
|
18
mcfog 2023-05-17 07:28:47 +08:00 via Android 1
可以用 includeif 实现
|