V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
LeeReamond
V2EX  ›  问与答

git 有办法忽略日志文件吗?

  •  
  •   LeeReamond · Dec 29, 2020 · 2430 views
    This topic created in 1957 days ago, the information mentioned may be changed or developed.

    小白,远程同步开发时遇到日志的问题。

    情况是这样,目前项目文件夹内有一个 logs 文件夹,储存一些日志文件。我在创建项目时添加了.gitignore 文件,设置忽略这个文件夹,如此一来每次 commit 就不会把日志一起传上去。

    但是最近生产服务器同步时遇到问题,我希望的模式是,我在测试机器上写好代码,测试完成,然后同步到 github 远程服务器,然后生产服务器上再执行 git pull 把更新的代码拉下来。

    目前这么操作之后,生产服务器执行 git pull 程序,他会说我本地与远程有不同,需要先删除冗余文件( logs 等)之后才能 pull,这显然不符合要求,每次更新代码都要清空日志也太那个了。

    git 有没有当做不存在的功能?还是我哪里操作错了,请大家指点一下

    16 replies    2020-12-30 17:28:03 +08:00
    msg7086
        1
    msg7086  
       Dec 29, 2020 via Android
    Git add 的时候不要把 logs 里的文件 add 进去。
    Tianao
        2
    Tianao  
       Dec 29, 2020
    生产环境本地也有 .gitignore 吧?有的话生产环境下取消对所有已有日志文件的 git 跟踪( git rm --cached <日志文件>),以后再 pull 就不会冲突了。
    LeeReamond
        3
    LeeReamond  
    OP
       Dec 29, 2020
    @msg7086 既然已经有.gitignore 文件了,那我执行 git add 的时候应该与被忽略文件夹无关吧,没 add 进日志文件过啊
    aleung
        4
    aleung  
       Dec 29, 2020 via Android
    没有看懂为什么 .gitignore 没能解决你的问题。你的问题到底是什么?
    LeeReamond
        5
    LeeReamond  
    OP
       Dec 29, 2020
    @Tianao 大佬,你说这个看不太懂,所以是在某文件夹被 ignore 之后,它仍然会被追踪,需要手动取消追踪才行吗?
    LeeReamond
        6
    LeeReamond  
    OP
       Dec 29, 2020
    @aleung 生产部署后,产生了新的日志文件,与 github 远程代码不同步。在生产服务器更新代码的时候,执行 pull 命令,会提示我当前文件夹有差异,无法同步,需要先删除差异文件,也就是 logs 等等
    cnxobo
        7
    cnxobo  
       Dec 29, 2020
    gitignore 只能忽略尚未被跟踪的文件。如果你之前某个提交提交过了,就算后面匹配上 gitignore , 依然会继续提交的。
    choury
        8
    choury  
       Dec 29, 2020 via Android
    忽略之前已有文件要先在 git 中删除才行
    superrichman
        9
    superrichman  
       Dec 29, 2020 via iPhone
    https://www.zhihu.com/question/25234996

    skip worktree 或者 assume unchanged
    Tianao
        10
    Tianao  
       Dec 29, 2020   ❤️ 1
    @LeeReamond #5 是的,.gitignore 只会在 add 文件时生效,如果仓库是老的.gitignore 是新的,一旦建立跟踪就需要先手动取消跟踪一次。
    LeeReamond
        11
    LeeReamond  
    OP
       Dec 29, 2020
    @cnxobo 所以问题的原因是我之前不小心添加过 logs 这个文件夹内的文件吗?但是现在打开项目地址的话,里面是没有 logs 这个文件夹的,怎么回事呢
    Lax
        12
    Lax  
       Dec 29, 2020
    有提示的时候,git status 看看?
    Lax
        13
    Lax  
       Dec 29, 2020
    怀疑是服务器上的目录里更改了其它文件。问题不一定是你描述的这个样子,报错的信息直接复制一份来看看
    LeeReamond
        14
    LeeReamond  
    OP
       Dec 29, 2020
    @Lax 报错信息一串英文,只记得中文含义,原文找不到了,当时为了更新就直接按要求的删文件了,没把报错记下来
    Lax
        15
    Lax  
       Dec 29, 2020
    @LeeReamond 那就不好猜了。严重怀疑实际报错信息和上面提到的中文含义不匹配,下次再遇到类似问题至少截图保存一下现场
    dajj
        16
    dajj  
       Dec 30, 2020
    @LeeReamond 从 gitignore 中去掉 logs, 然后 git rm logs 目录, 再重新添加 logs 到 ignore
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1117 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 18:16 · PVG 02:16 · LAX 11:16 · JFK 14:16
    ♥ Do have faith in what you're doing.