在我的应用程序中,我有一些目录,我希望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
条目告诉它这样做。
答案 0 :(得分:0)
即使git by git add --force bin
也无法将空文件夹添加到git。
基本上,git按路径名管理文件,一个节点用于一个文件,而不是文件夹。
您必须将.gitkeep文件放在bin文件夹中并按git add bin/.gitkeep
添加,
同时,按以下方式忽略规则忽略bin文件夹中的文件,而不是整个文件夹。
bin/*
!.gitkeep