忽略除了不同目录中的一系列不同文件之外的所有内容

时间:2014-07-30 19:36:32

标签: git magento gitignore

继续以下问题:

我正努力在自己的环境中实现这一点。

我遵循了建议,并根据自己的需要进行了调整,但是,当我运行git status时,我得到的就是.gitignore本身。

我正在创建一个Magento模块,如果您已经创建了一个Magento模块,那么您将知道整个Magento安装中的奇数位置都有文件。

这是我创建的.gitignore:

# Ignore All
/*
/*/

# EXCEPT
# =============

# This
!/.gitignore

# Module Config
!/app/etc/modules/Company_Module.xml

# Module Code
!/app/code/local/Company/Module/

# Front End Design
!/app/design/frontend/base/default/layout/company_module.xml
!/app/design/frontend/base/default/template/company_module/

# Back End Design
!/app/design/adminhtml/default/default/layout/company_module.xml
!/app/design/adminhtml/default/default/template/company_module/

# JavaScript
!/js/company_module/

# Front End Skin
!/skin/frontend/base/default/css/company_module/
!/skin/frontend/base/default/images/company_module/
!/skin/frontend/base/default/js/company_module/

# Back End Skin
!/skin/adminhtml/default/default/css/company_module/
!/skin/adminhtml/default/default/images/company_module/
!/skin/adminhtml/default/default/js/company_module/

我创建了以下文件来测试其有效性/app/etc/modules/Company_Module.xml,但它在git status输出中根本没有出现。

我不知道此时该做什么。

1 个答案:

答案 0 :(得分:0)

好的,我已经弄清楚应该如何构建它。

我必须在创建文件时将每个文件夹视为自己的实体。例如,我将查看根并使用/*忽略所有,然后遍历此目录中的每个文件夹并否定我需要否定的内容,包括否定我要否定的文件夹。我没有跟踪文件的完整路径,而是在逐个文件夹的基础上对其进行处理。请参阅以下示例:

/*
!/app
app/*
!/app/etc
app/etc/*
!app/etc/modules
app/etc/modules/*
!/app/etc/modules/Company_Module.xml

逐行:

  1. 忽略root中的所有文件 - /*
  2. 除了app文件夹 - !/app
  3. 在app文件夹中,忽略所有文件 - app/*
  4. 除etc文件夹外 - !/app/etc
  5. 在etc文件夹中,忽略所有文件 - app/etc/*
  6. 模块文件夹除外 - !/app/etc/modules
  7. 在modules文件夹中,忽略所有文件 - app/etc/modules/*
  8. 模块配置文件除外 - !/app/etc/modules/Company_Module.xml
  9. 它有点啰嗦,但它肯定会增加400多行来忽略每个不相关的文件/文件夹。

    我已经用这种方式构建了文件,它从36行扩展到91行,所以它并不太糟糕。现在,所有内容都已通过此.gitignore结构投放到我的回购中,我可以确认其有效性。