为什么要用Git跟踪空目录?

为什么要用Git跟踪空目录?,git,version-control,directory,Git,Version Control,Directory,我见过有人在Git repo的空目录中添加.gitkeep,.keep文件,我不明白为什么我需要跟踪en empty dir 你能举出一些必要的例子吗 相关的 示例:当您的应用程序没有权限在已部署的服务器中创建新目录时 来源:有时,需要为编译时生成的文件保留一个空文件夹。为其他人创建一个模板项目时,可以方便地包括空目录,以帮助指导某些内容应该放在哪里 例如,MVC模板repo可能包含空的模型、视图和控制器文件夹,这些文件夹已经位于正确的位置,可以用文件填充。我通常会在目录中添加一个.gitkee

我见过有人在Git repo的空目录中添加
.gitkeep
.keep
文件,我不明白为什么我需要跟踪en empty dir

你能举出一些必要的例子吗

相关的


示例:当您的应用程序没有权限在已部署的服务器中创建新目录时


来源:

有时,需要为编译时生成的文件保留一个空文件夹。

为其他人创建一个模板项目时,可以方便地包括空目录,以帮助指导某些内容应该放在哪里


例如,MVC模板repo可能包含空的模型、视图和控制器文件夹,这些文件夹已经位于正确的位置,可以用文件填充。

我通常会在目录中添加一个.gitkeep文件,该目录必须存在,我的应用程序才能正常运行(我避免编写代码检查它们的存在和创建情况)。例如,保存用户化身的目录。

一个可能的原因可能是主(或其他)分支中的目录不会为空。这可以消除一些混淆。切换分支时,Git不会删除空文件夹,在这种情况下,不需要添加
.gitkeep
.keep
文件。我试图理解你为什么在repo中故意将目录保留为空。我想说的是,作为构建工件的文件夹不应在Git下进行版本控制,除非可能存在奇怪的权限问题。@TimBiegeleisen,如果是关于创建文件夹的权限问题,也许它在运行git clone时失败了,我认为没有必要跟踪构建产品。可以公平地假设,如果您正在构建一个产品,那么您已经有足够的权限来创建文件,因此创建文件夹不应该是一个问题。根据我的经验,这种使用空文件夹的方式从来都不起作用,人们最终会随意添加文件。在这种情况下,您必须将错误放置的文件移动到正确的位置,这样就没有必要通过创建空文件夹来抢占其他开发人员的先机,可以在需要时创建正确的目录,而不是在之前创建。那么您是在将git repo直接部署到执行环境中吗?我假设大多数项目都涉及打包阶段和安装阶段,这两个阶段都可以设置必要的运行时文件夹。这只适用于小型应用程序,如博客或其他应用程序。关键是要尽快开始,如果你的应用程序需要一个打包阶段,那么你一定要多花一点时间检查所需目录的存在。