• 请不要在回答技术问题时复制粘贴 AI 生成的内容
UnrealEngine
V2EX  ›  程序员

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

  •  
  •   UnrealEngine · Feb 2, 2024 · 3818 views
    This topic created in 1005 days ago, the information mentioned may be changed or developed.

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

    有什么安全的解决办法?

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

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