git和空文件夹

时间:2009-11-19 22:56:59

标签: git version-control

所以我看到Git无法识别文件夹,或者我应该说当提交之间的唯一更改是将空文件夹添加到工作树时它们在git statusgit add .中没有显示。

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

8 个答案:

答案 0 :(得分:45)

我通常在这些目录中放置.gitignore,因为您可能想要忽略任何运行时生成的数据。

答案 1 :(得分:26)

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

答案 2 :(得分:8)

你是完全正确的。与其他版本控制系统一样,Git不会识别空文件夹或文件夹属性。只有存在文件的文件夹才存在。如果要模拟这个,则需要将占位符文件放入其中。

答案 3 :(得分:8)

我通常在这些文件夹中放置空 .gitkeep

答案 4 :(得分:4)

您应该意识到,您要求源控制系统设置一些非源代码的资源,而不是构建系统的一部分,但对应用程序的运行至关重要。我会做以下其中一项:

  1. 使构建创建必要的目录。
  2. 让应用程序在运行时创建所需的目录。
  3. 同样,如果应用程序想要附加到日志文件,那么在修订控制系统中启动该日志文件是没有意义的,不是吗?

答案 5 :(得分:3)

将空占位符文件放入您希望git跟踪的文件夹中,或者在可能的情况下添加指令以便为构建系统创建这些文件夹。

答案 6 :(得分:0)

我也面临同样的问题。我认为这与Git追踪变化的方式有关。它不跟踪文件,而是跟踪其内容。显示更改,提交或日志时,它会将更改映射到特定文件,并显示各个文件中的更改。有关详细信息,请参阅此视频Tech Talk: Linus Torvalds on git Linus特别提供了一个关于将函数从一个文件移动到另一个文件以及git如何跟踪更改的示例。

答案 7 :(得分:-3)

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

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

上找到

同样,我的目的是存储文件,而不是使用代码。