![](/img/trans.png)
[英]How do I ignore everything except a couple files in the top-level directory and everything in a few directories with .gitignore
[英]Ignore Everything Except a Series of Different Files in Different Directories
接下来是这些问题:
我正在努力在自己的环境中实现这一目标。
我已经遵循了建议并将其调整为适合自己的需求,但是,当我运行git status
得到的所有内容都是.gitignore本身,因为未跟踪。
我正在创建一个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
输出中。
我目前不确定该怎么办。
好的,我已经弄清楚了应该如何组织它。
创建文件时,我必须将每个文件夹视为自己的实体。 例如,我将查看根目录并使用/*
忽略所有内容,然后遍历此目录中的每个文件夹并否定我需要否定的内容,包括仅对要否定的文件夹进行否定。 与其跟踪文件的完整路径,不如逐个文件夹地处理它。 请参见以下示例:
/*
!/app
app/*
!/app/etc
app/etc/*
!app/etc/modules
app/etc/modules/*
!/app/etc/modules/Company_Module.xml
逐行:
/*
!/app
app/*
!/app/etc
app/etc/*
!/app/etc/modules
app/etc/modules/*
!/app/etc/modules/Company_Module.xml
这有点麻烦,但是肯定可以添加400多个行来忽略每个不相关的文件/文件夹。
我以这种方式构造了文件,它从36行扩展到91行,所以还算不错。 现在,所有内容都已提交,并使用此.gitignore
结构推送到我的存储库中,我可以确认它的有效性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.