git 和空文件夹

问题描述 投票:0回答:9

所以我看到 Git 无法识别文件夹,或者我应该说提交之间的唯一更改是将空文件夹添加到工作树中,它们在

git status
之后不会显示在
git add .
中。

您将如何处理向工作树添加空文件夹(用于运行时存储)的需求,并在其他存储库从当前存储库(其中添加了文件夹的存储库)拉取时反映/创建它们?

git version-control
9个回答
51
投票

我通常会在这些目录中放置一个

.gitignore
,因为您可能想忽略任何运行时生成的数据。


32
投票

人们经常在文件夹中放置一个空文件作为占位符以克服该限制...


20
投票

我通常将空的 .gitkeep 放在这些文件夹中。


8
投票

你说得完全正确。 Git 与其他一些版本控制系统一样,不识别空文件夹或文件夹的属性。文件夹仅在其中包含文件时才存在。如果你想模拟这个,你需要将占位符文件放入其中。


4
投票

您应该意识到,您要求源控制系统设置一些不是源的资源,不是构建系统的一部分,但对应用程序的操作至关重要。我会执行以下操作之一:

  1. 使构建创建必要的目录。
  2. 让应用程序在运行时创建所需的目录。

同样,如果应用程序想要附加到日志文件,那么让该日志文件在版本控制系统中启动就没有意义,不是吗?


3
投票

将空占位符文件放入您希望 git 跟踪的文件夹中,或者添加说明以在构建系统中创建这些文件夹(如果可能)。


0
投票

我也面临同样的问题。我认为这与 Git 跟踪更改的方式有关。它不跟踪文件,而是跟踪其内容。显示更改、提交或记录时,它将更改映射到特定文件并显示单个文件中的更改。请观看此视频了解更多详细信息技术讲座:Linus Torvalds on git Linus 特别给出了一个关于将函数从一个文件移动到另一个文件以及 git 如何跟踪更改的示例。


0
投票

对于 Linux / MAC OSX,使用以下一行,递归地创建/将空占位符文件放入文件夹中:

find . -type d -empty -exec touch {}/.gitkeep \;

-2
投票

我在尝试使用 git 作为支持重复数据删除和压缩的备份工具时遇到了这个问题。

我的解决方案是创建自己的系统。它可以在 http://github.com/meingbg/store

上找到

再次强调,我的目的是存储文件,而不是使用代码。

© www.soinside.com 2019 - 2024. All rights reserved.