Why would you track an empty directory with Git?
我见过有人在git repo的空目录中添加.gitkeep、.keep文件,但我不明白为什么我需要跟踪en empty dir。
你能举出一些必要的例子吗?
相关的
.gitignore和.gitkeep之间有什么区别?
- 一个可能的原因是目录在主(或其他)分支中不会是空的。这可以消除一些混乱。
- 在切换分支时,Git不会删除空文件夹,在这种情况下,不需要添加.gitkeep或.keep文件。我想知道为什么在回购协议中你会故意保留一个空目录。
当为其他人创建模板项目来实现时,可以方便地包含空目录,以帮助指导某些内容应该放在哪里。
例如,MVC模板repo可以包含空的模型、视图和控制器文件夹,这些文件夹已经在正确的位置,并且可以用文件填充。
- 根据我的经验,这种使用空文件夹的方法从未奏效,人们最终会在任何他们想添加的地方添加文件。在这种情况下,您必须将放错的文件移到正确的位置,这样就没有必要通过创建空文件夹来抢占其他dev,可以在需要时创建正确的目录,而不是以前。
示例:当您的应用程序没有在服务器中创建新目录的权限时,它已被部署。
来源:是否可以让Git跟踪空文件夹?
我通常会在应用程序正常运行所必需的目录中添加一个.gitkeep文件(我避免编写检查其存在和创建的代码)。例如,保存用户化身的目录。
- 那么,您是直接将Git repo部署到执行环境中吗?我假设大多数项目都涉及打包阶段和安装阶段,其中任何一个阶段都可以设置必要的运行时文件夹。
- 这仅适用于小型应用程序,如博客或其他应用程序。关键是要尽快开始,如果你的应用程序需要一个打包阶段,你一定要多走一英里来检查所需目录的存在。
有时,需要为编译时生成的文件保留一个空文件夹。
- 我会说,构建工件的文件夹不应该在Git下进行版本控制,除非可能存在奇怪的权限问题。
- @Timbiegeleisen,如果是创建文件夹的权限问题,可能在运行git clone时失败。
- 我认为没有必要跟踪构建产品。假设您正在构建一个产品,那么您已经有足够的权限来创建文件,因此创建文件夹不应该是问题。