求教如何在 .gitignore_global 配置只忽略 github.com 目录下项目的 vendor 目录? - V2EX
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
ryan91
V2EX    git

求教如何在 .gitignore_global 配置只忽略 github.com 目录下项目的 vendor 目录?

  •  
  •   ryan961 May 16, 2023 2003 views
    This topic created in 1091 days ago, the information mentioned may be changed or developed.

    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/ 

    求大佬指导下该怎么配置

    image

    Supplement 1    May 17, 2023

    尝试了 v 友回复中的几种方式:

    1. .git/info/exclude 在 github.com/ 下的项目,每次克隆回来手动在 .git/info/exclude 中加上 vendor/
    echo "vendor/" >> .git/info/exclude 
    1. includeif 在全局的 .gitconfig 中配置 includeif (对 github.com/ 单独使用一套配置 .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/ 
    18 replies    2023-05-17 07:28:47 +08:00
    huijiewei
        1
    huijiewei  
       May 16, 2023
    为什么要放在 gitignore_global 里面。放到 github.com 目录里面忽略就好了
    hxy100
        2
    hxy100  
       May 16, 2023
    你这个需求很奇怪,.gitignore_global 应该不支持这种复杂的配置吧,直接配置单个项目的 .gitignore 就好了,如果忽略的内容需要经常变来变去,可以换个思路,通过 Hook 钩子自动执行命令来更新.gitignore ?
    ryan961
        3
    ryan961  
    OP
       May 16, 2023
    @huijiewei #1 github.com 下面是从 github 上拉下来的项目仓库,不想对每个仓库的 .gitignore 都加上 vendor/ 忽略。
    但是不知道怎么对 github.com/ 目录下的项目配置 .gitignore 。例如这样的项目目录层级:
    ryan961
        4
    ryan961  
    OP
       May 16, 2023
    @hxy100 #2 大多数的项目不需要忽略 vendor/ 目录,但对于 g*/ 这个目录下的项目需要忽略 vendor/ 目录,因为都是拉的开源项目不方便修改 .gitignore 文件,这就导致每次提交的时候都要特别注意下这个
    huijiewei
        5
    huijiewei  
       May 16, 2023
    直接在 github_com 目录下面加一个 .gitignore

    ```
    **/vendor
    ```

    不行么
    SingeeKing
        6
    SingeeKing  
    PRO
       May 16, 2023 via iPhone   1
    @ryalu 配置 .git/info/exclude 嫌一个个配置麻烦写个脚本一键配置好
    Nile20
        7
    Nile20  
       May 16, 2023
    这个问题适合认真研究文档,可能不适合 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'
    Nile20
        8
    Nile20  
       May 16, 2023
    没想到目录树发出来是这种效果……看不清层级了。补个路径形式的吧
    ……补不出来,v2ex 说我在 spamming
    ryan961
        9
    ryan961  
    OP
       May 16, 2023
    @huijiewei #5 不行,github_com/ 不是一个项目仓库,只是一个普通文件夹
    ryan961
        10
    ryan961  
    OP
       May 16, 2023
    @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 看看
    Nile20
        11
    Nile20  
       May 17, 2023
    @ryalu 很奇怪,我是测试完再发的,测试用的工程打包在这里了 https://cowtransfer.com/s/754fd4907dbd46
    你是不是工程里还有别的 ignore 在生效?
    Nile20
        12
    Nile20  
       May 17, 2023
    你的.gitconfig 中配置的.gitinore_global 生效了么?(要在.gitconfig 里配置并且使用完整路径)
    我之前的 Demo 是放在.gitignore 里的,但是刚刚测试放在.gitignore_global 里也生效的。

    [core]
    excludesfile = ~/.gitignore_global
    ryan961
        13
    ryan961  
    OP
       May 17, 2023
    @Nile20 #11 github_com/ 目录下都是克隆下来的项目,每个项目都是独立的 .git,都包含 .gitignore
    ryan961
        14
    ryan961  
    OP
       May 17, 2023
    目前看来只有在项目拉下来后手动将 vendor 目录加到 .git/info/exclude 中了

    echo "vendor/" >> .git/info/exclude
    ryan961
        15
    ryan961  
    OP
       May 17, 2023
    @Nile20 #12 这个是生效了的。你的 demo 事例中,project 并不是一个独立的 git 仓库,也不包含自己 .gitignore 文件。
    Faithlv
        16
    Faithlv  
       May 17, 2023 via Android
    不应该吧,这种格式会不支持?
    Faithlv
        17
    Faithlv  
       May 17, 2023 via Android
    mcfog
        18
    mcfog  
       May 17, 2023 via Android   1
    可以用 includeif 实现
    About     Help     Advertise     Blog     API     FAQ     Solana     1180 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 57ms UTC 23:16 PVG 07:16 LAX 16:16 JFK 19:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86