• 【Git】gitignore不生效场景2: 添加文件忽略 & .gitignore,整个文件夹都被忽略了


    问题现象

    1、本地.gitignore 新增配置

    log/uilog/*    // log/uilog/路径下文件都不可提交
    !.gitkeep      // 保留.gitkeep 
    
    • 1
    • 2

    2、项目结构如下
    projectXXX
    .
    ├── data
    ├── log
    │ └── uilog
    │ └── .gitkeep

    3、但.gitignore提交后,本地 gst 没有出现->log/uilog/.gitkeep

    尝试解决1: // 不适应本场景,不可行❌

    解决.gitignore不生效问题

    输入:

    git rm -r --cached .
    
    • 1

    返回文件里也不包含:
    rm log/uilog/.gitkeep

    尝试解决2: // 可行 ✅

    • 尝试手动 add log/uilog
    > g add log/uilog
    The following paths are ignored by one of your .gitignore files:
    log/uilog
    Use -f if you really want to add them.
    
    • 1
    • 2
    • 3
    • 4
    • 根据提示修改:
    g add -f log/uilog
    
    • 1
    • 这时再 git status 查看
    > gst
    On branch xxx
    Your branch is up to date with 'origin/xxx'.
    
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
    	new file:   log/uilog/.gitkeep
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    log/uilog/.gitkeep 终于可提交了!
    这时再push 上去,.gitignore配置生效。

    好使。✅

    详细操作过程

    
    # 本地手动创建了 log/uilog/.gitkeep
    
    > gst    # 没有检查出 log/uilog/.gitkeep
    On branch xxx
    Your branch is up to date with 'origin/xxx'.
    
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
    	modified:   .gitignore
    
    no changes added to commit (use "git add" and/or "git commit -a")
    
    
    > g add log/uilog  # 尝试 git add
    The following paths are ignored by one of your .gitignore files:
    log/uilog
    Use -f if you really want to add them.
    
    
    > g add -f log/uilog   # 根据提示尝试 git add -f
    
    
    
    > gst   # 再次查看可提交文件
    On branch xxx
    Your branch is up to date with 'origin/xxx'.
    
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
    	modified:   .gitignore
    	new file:   log/uilog/.gitkeep
    
    
    > g ci -m "add empty log/uilog"    # 提交
    [xxx c6d3918] add empty log/uilog
     2 files changed, 1 insertion(+), 1 deletion(-)
     create mode 100644 log/uilog/.gitkeep
    > git push
    Enumerating objects: 6, done.
    Counting objects: 100% (6/6), done.
    Delta compression using up to 4 threads
    Compressing objects: 100% (3/3), done.
    Writing objects: 100% (4/4), 378 bytes | 378.00 KiB/s, done.
    Total 4 (delta 2), reused 0 (delta 0)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
  • 相关阅读:
    高薪程序员&面试题精讲系列142之如何进行项目测试--上篇?你了解哪些测试方法?单元测试熟悉吗?
    C++STL之<set>和<map>
    Java 线程及线程池的创建方式
    CSS的选择器(超详细)
    css溢出属性
    leecode#用Read4读取n个字符#相交链表
    【Java开发】 Spring 05 :Project Reactor 响应式流框架(以Reactive方式访问Redis为例)
    MySql(46)事务的隔离级别
    Spring的循环依赖,到底是什么样的
    光电探测器指标分析
  • 原文地址:https://blog.csdn.net/YUICUI/article/details/125400522