Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git忽略除子文件夹以外的所有文件_Git_Magento_Gitignore - Fatal编程技术网

Git忽略除子文件夹以外的所有文件

Git忽略除子文件夹以外的所有文件,git,magento,gitignore,Git,Magento,Gitignore,我搜索了其他问题,但找不到适合我的项目的有效解决方案。 有一个Magento项目,我想排除除此之外的所有内容: /app/design/frontend/default/theme_name # and obviously all subfolders /skin/frontend/default/theme_name # and all subfolders 我试过很多组合,但运气不好。目前我一直使用这个.gitignore文件: * !/app/ !/app/* app/* !/app/

我搜索了其他问题,但找不到适合我的项目的有效解决方案。 有一个Magento项目,我想排除除此之外的所有内容:

/app/design/frontend/default/theme_name # and obviously all subfolders
/skin/frontend/default/theme_name # and all subfolders
我试过很多组合,但运气不好。目前我一直使用这个.gitignore文件:

*
!/app/
!/app/*

app/*
!/app/design/
!/app/design/*

但它在设计文件夹下不能递归工作。它只在我创建的设计文件夹中添加了一个测试文件。

在这里做了一些研究。对我起作用的是:

/*
!/directory
!/another
/another/*
!/another/directory
通过此操作,正确跟踪了
/目录
的子目录。奇怪的是,它既不适用于第一行的
/
也不适用于第一行的
*
——我不知道为什么。

请看我的答案:

引述:

以下讨论很有帮助: ,特别是来自Linus的以下内容:

这是故意的。您选择忽略这些目录;他们 匹配“*”本身。因此,“吉特补充道,”并没有陷入其中 正在查找文件。

所以基本上,对于你必须进入的每一个关卡,取消那个文件夹, 并忽略该文件夹中的内容

此外,您还应该考虑在子目录而不是根目录下使用
.gitignore
,因为如果您必须从根目录
.gitignore
进入子目录级,那么这会变得非常复杂,因为上面的解释,即对于每个级别,您必须取消对文件夹的命名,然后忽略其中的内容等等

/**
!/**/
!/app/design/frontend/default/theme_name/**
!/skin/frontend/default/theme_name/**
解释:

  • 递归地忽略所有文件和文件夹(注意双星号)
  • 递归地排除所有文件夹(git按设计将不会提交空文件夹,满是被忽略文件的文件夹将被视为空文件夹。我们需要这样做,以便下两个文件夹排除工作)
  • 从该位置递归排除所有文件和文件夹
  • 从该位置递归排除所有文件和文件夹

  • 我通常对子文件夹执行此操作,因此我不知道第一行是否有效。

    不幸的是
    /另一个/directory
    不适用于我。我应该忽略每个级别的/unignore。我想知道它是否取决于git版本。我使用的是
    git版本1.7.4.1
    我有完全相同的
    $git--version
    git版本1.7.4.1
    它只是忽略了
    /另一个/目录
    。正如manojlds所指出的,is被忽略,因为它的父级被忽略。设计中编程的错误:o@Briad戈登-那是你的莱纳斯:D