为什么代码库的.gitignore 里明明把某个文件忽略掉了,但是拉取的时候依然会把该文件拉下来? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
UnrealEngine
V2EX    程序员

为什么代码库的.gitignore 里明明把某个文件忽略掉了,但是拉取的时候依然会把该文件拉下来?

  •  
  •   UnrealEngine 2024-02-02 19:55:14 +08:00 2910 次点击
    这是一个创建于 616 天前的主题,其中的信息可能已经有所发展或是发生改变。

    上网了解下解决办法是将 git 清除本地缓存,即 git rm -r --cached 文件名,然后再提交,但是这样会把生产环境的该文件也会一并删除的吧?

    有什么安全的解决办法?

    第 1 条附言    2024-02-02 20:55:08 +08:00
    该文件是 config 配置目录下的文件
    15 条回复    2024-02-04 09:40:01 +08:00
    itechify
        1
    itechify  
    PRO
       2024-02-02 19:56:44 +08:00 via Android
    .gitignore 不是负责忽略提交吗?
    securityCoding
        2
    securityCoding  
       2024-02-02 20:09:04 +08:00 via Android
    你的版本没提交吧
    geelaw
        3
    geelaw  
       2024-02-02 20:11:15 +08:00 via iPhone   1
    因为 .gitignore 的效果是让 Git 不关心文件的出现(准确理解“出现”是重点),比如 git add . 不会把当前目录下被 .gitignore 匹配的、新出现的文件加到 index 。如果文件已经被 Git 追踪,那 .gitignore 匹配上也不会有任何效果,比如 git add . 会把当前目录下被 .gitignore 匹配的、已经被 Git 追踪的、且发生了变化的文件的变化加入 index 。

    我想楼主应该已经自学了 git rm 里 r 和 cached 的含义了,不再多嘴。至于“生产环境也……”“怎么安全解决”,我们不知道你对生产环境的担忧是什么,因为我们不知道你的生产环境是如何部署的。
    thinkershare
        4
    thinkershare  
       2024-02-02 20:13:01 +08:00
    请将问题描述清楚。
    geelaw
        5
    geelaw  
       2024-02-02 20:13:32 +08:00 via iPhone   1
    @geelaw #3 应该强调的是“不关心出现”是指不关心工作目录里的出现,已经被 Git 追踪的文件(存在于 commit 里面的)当然会在 checkout 的时候放置在工作目录下,checkout 的过程和 .gitignore 没有任何关系。
    dddd1919
        6
    dddd1919  
       2024-02-02 21:10:24 +08:00
    1. 先把生产的配置拷贝到另一个目录
    2. 本地删除 git 里的生产配置并提交
    3. 更新生产代码
    4. 在生产配置目录软链到实际配置文件所在位置
    5. 重启服务
    raykle
        7
    raykle  
       2024-02-02 23:01:37 +08:00
    你到底是不想拉下来还是不想提交上去
    fan123199
        8
    fan123199  
       2024-02-02 23:06:30 +08:00
    你知道 op 的需求,就是想 ignore 的某个文件,但是又不把这个文件从 origin 删除。这个我目前看的方法,都是用其他方式来解决。 比如, 你要一个 xxxconfig. 那么你需要新建一个 xxxconfig.template, 添加 xxxconfig ,然后都写一个 init 脚本,mv xxxconfig.template xxx.config 。clone 的时候初始化一下
    dontLookAvatar
        9
    dontLookAvatar  
       2024-02-02 23:18:33 +08:00
    .gitignore 只忽略未提交前的文件, 但已提交过的还是会存在. 而且, gitignore 影响不了拉取吧
    devliu1
        10
    devliu1  
       2024-02-02 23:24:21 +08:00 via Android
    gitignore 只是前端验证,已经提交过的仍然存在。
    mxT52CRuqR6o5
        11
    mxT52CRuqR6o5  
       2024-02-03 03:18:40 +08:00 via Android
    用 git gui 工具,手动选择提交范围
    keakon
        12
    keakon  
       2024-02-03 10:50:44 +08:00 via Android
    git add -f 是可以强制添加被忽略的文件的
    wanguorui123
        13
    wanguorui123  
       2024-02-03 11:28:54 +08:00
    拉取下来删除再提交就对了
    iseki
        14
    iseki  
       2024-02-03 15:53:13 +08:00 via Android
    你们的生产环境部署,难道是直接 git pull 吗?这个稍微粗暴了一点,改成通过 CD 去拷贝文件吧
    dongzhuo777
        15
    dongzhuo777  
       2024-02-04 09:40:01 +08:00   1
    因为 在加.gitignore 之前 就有人把它 push 上去了。
    你要做的,先拉下来 然后做一次删除的 commit ,然后再把它 push 上去
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     879 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:38 PVG 04:38 LAX 13:38 JFK 16:38
    Do have faith in what you're doing.
    ubao 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