仅允许子目录中带有 .gitignore 的部分文件

问题描述 投票:0回答:3

我的目录结构是这样的:

static
    admin
    ajax_upload
    books
    css
    font
    media
    robots.txt
templates
src
build
lib

我想忽略以下目录:

  • lib
  • 构建
  • 来源
  • 静态

我想允许以下内容:

  • 静态/css/bootstrap-styled.css
  • 静态/css/main.css
  • 静态/css/字体-*.css
  • 静态/字体
  • 静态/媒体/default.png
  • 静态/robots.txt
  • 模板

所以我使用以下.gitignore:

# Ignore
/lib
/src
/build
/static/*

# Allow
!/static/css/bootstrap-styled.css
!/static/css/main.css
!/static/css/font-*.css
!/static/font
!/static/media/default.png
!/static/robots.txt

但是它不能正常工作。你能帮我吗 - 我在这里做错了什么?蒂亚!

详情

真实的项目结构是这样的:

static
    admin
        css
        img
        js
            admin
    ajax_upload
    books
    css
    font
    media
        uploads
            blog
            gallery
        default.png
    robots.txt
templates
src
build
lib
gitignore
3个回答
64
投票

因此,.gitignore 对我的作用如下:

# Ignore
lib/
src/
build/
static/**/*

# Allow
!static/css/bootstrap-styled.css
!static/css/main.css
!static/css/font-*.css
!static/font/*
!static/media/default.png
!static/robots.txt

10
投票

尝试以下操作:

# Ignore
/lib/
/src/
/build/
/static/

# Allow
!/static/css/bootstrap-styled.css
!/static/css/main.css
!/static/css/font-*.css
!/static/font
!/static/media/default.png
!/static/robots.txt

我认为这应该有效。


2
投票

尽管是旧帖子,但今天仍然有意义。

使用上述解决方案进行长时间调试后,它仍然对我不起作用,但我最终通过简单地执行以下命令修复了它:

  • git add .\[your_filename] -f

其中

.
预计是您当前的目录。

节省了我很多时间来调试为什么我的

.gitignore
不工作以及我错过了什么。

© www.soinside.com 2019 - 2024. All rights reserved.