无法找到忽略bin目录内容并保留bin目录的方法

时间:2017-01-31 00:15:15

标签: git ignore

在我的应用程序中,我有一些目录,我希望git忽略,但我希望目录本身保留在存储库中。复杂的是,这些目录有时会被构建工具自动删除。因此,在目录中放置.gitignore,告诉它忽略除了自身之外的所有内容(许多帖子中建议的解决方案)都行不通。 .gitignore文件有时会自动删除。

所以我在项目的顶级目录中创建了一个.gitignore条目,告诉它忽略子目录target的内容。

**/target/*

这完全符合我的要求。一旦我向target dir提交了其中的内容并将其推送到远程,对target内容的后续更改将被忽略,并且target永远不会从远程仓库中删除。< / p>

问题在于,当我使用bin执行此操作时,它不起作用。当我输入git add /path/to/bin(当bin不为空时)它不会添加它,虽然我没有任何.gitigore文件告诉git忽略它。我可以通过git add --force bin添加它,但随后它会添加所有内容,并跟踪bin中所有内容的后续更改。

奇怪的是,这适用于target,但不适用于bin。似乎git被硬编码为忽略bin dirs,即使我没有.gitignore条目告诉它这样做。

1 个答案:

答案 0 :(得分:0)

即使git by git add --force bin也无法将空文件夹添加到git。

基本上,git按路径名管理文件,一个节点用于一个文件,而不是文件夹。

您必须将.gitkeep文件放在bin文件夹中并按git add bin/.gitkeep添加, 同时,按以下方式忽略规则忽略bin文件夹中的文件,而不是整个文件夹。

bin/*  
!.gitkeep