在我的应用程序中,我有一些我希望git忽略的目录,但是我希望目录本身保留在存储库中。复杂的是,这些目录有时会被构建工具自动删除。因此,在目录内放置一个.gitignore,告诉它忽略所有内容,但它本身(在许多帖子中建议的解决方案)将不起作用。 .gitignore文件有时会自动删除。找不到方法来忽略bin目录内容并保留目录目录
因此,我在我的项目顶层目录中创建了一个.gitignore条目,告诉它忽略像这样的子目录target
的内容。
**/target/*
,因为我希望它那工作的。一旦我将target
目录提交给它并将其推送到远程,将忽略对target
内容的后续更改,并且target
永远不会从远程回购中删除。
问题是,当我这样做与bin
它不起作用。当我输入git add /path/to/bin
(当bin
不为空时)它不会添加它,尽管我没有.gitigore
文件告诉git忽略它。我可以在git add --force bin
之后添加它,但它会添加所有内容,并跟踪后续对bin
中的所有更改。
很奇怪,这适用于target
,但不适用于bin
。看起来像git是硬编码忽略bin dirs
,即使我没有一个.gitignore
条目告诉它这样做。
这个特定的'bin'目录是否已经提交到存储库?这将解释为什么将它添加到'.gitignore'不起作用。 'bin' AFAIK没有什么特别的。 –
我不认为它已经提交。这实际上是我所渴望的行为。其他开发人员将会获取代码并运行一个maven构建,并且bin和目标dirs需要在maven构建中。添加bin/.gitkeep后,我推送到远程,并通过Web界面在那里看到它。当在本地构建过程中删除该文件时,git将其标记为已更改,如果我添加,提交和推送,bin目录也从远程删除。此时,bin中还有其他内容,但由于.gitkeep是我添加的文件,删除它会导致整个bin目录不见了。 – MidnightJava