我如何将一个空的目录(不包含文件)添加到一个Git存储库中?
当前回答
将.gitkeep 文件添加到空的目录中,并承诺。
touch .gitkeep
这是Git跟随的标准。
其他回答
您可以通过 create_readme.php 保存此代码并从您的 Git 项目的根目录运行 PHP 代码。
php create_readme.php
它将添加 README 文件到所有是空的目录,因此这些目录将被添加到指数。
<?php
$path = realpath('.');
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach($objects as $name => $object){
if ( is_dir($name) && ! is_empty_folder($name) ){
echo "$name\n" ;
exec("touch ".$name."/"."README");
}
}
function is_empty_folder($folder) {
$files = opendir($folder);
while ($file = readdir($files)) {
if ($file != '.' && $file != '..')
return true; // Not empty
}
}
?>
然后做
git commit -m "message"
git push
在目录中创建一个名为.gitkeep 的空白文件,然后将其添加到 git。
这将是一个隐藏的文件在Unix类似系统的默认情况下,但它将迫使Git承认该目录的存在,因为它现在有内容。
此外,请注意,关于此文件的名称没有什么特别的。 你可能已经命名了它你想要的任何东西. 所有 Git 关心的是,文件夹里有什么东西。
touch .placeholder
在Linux上,它创建了一个名为.placeholder 的空白文件. 值得一提的是,这个名称是 agnostic 到 git,并在系统中的其他地方使用这种方法,例如 /etc/cron.d/.placeholder. 第二,正如另一个用户指出的那样,.git 预定协议可以为 Git 自己用于配置目的的文件和目录进行备份。
否则,正如另一个答案中所指出的那样,目录可能包含一个描述的 README.md 文件。
无论如何,这都需要文件的存在不会导致您的应用程序破裂。
您可以随时将 README 文件放入目录中,并解释为什么您想要此,否则空白,目录在存储库中。
你不能,不幸的是,你永远不会能做到这一点,这是Linus Torvald自己做的决定,他知道什么对我们有好处。
这里有一个地方,我读过一次。
我找到了 Re: 空的目录,但也许还有另一个。
你必须和工人一起生活......不幸的是。
推荐文章
- 如何在Visual Studio中删除未推送的外向提交?
- Git在两个不同的文件之间的差异
- 我如何使用vimdiff来解决git合并冲突?
- 如何将更改提交到另一个预先存在的分支
- 为什么使用'git rm'来删除文件而不是'rm'?
- 我如何安装imagemagick与自制?
- 致命:git-write-tree:错误构建树
- Git克隆远程存储库的特定版本
- 如何在Python中获取当前执行文件的路径?
- git隐藏的意图用例是什么?
- 从远程Git存储库检索特定的提交
- 如何配置git bash命令行补全?
- 我如何迫使git拉覆盖每一个拉上的一切?
- 撤销“git add <dir>”?
- 是否可以在不先签出整个存储库的情况下进行稀疏签出?