gpt4 book ai didi

git - 为什么我不能在 git 中提交一个空文件夹?

转载 作者:太空狗 更新时间:2023-10-29 12:57:44 25 4
gpt4 key购买 nike

这里的关键词是为什么。有很多问题的答案是“git 不允许这样做”,但我想知道 为什么 它不允许这样做。

我一直在阅读 the architecture of git里面有这张图片:

DAG with tree nodes

此图像显示有 节点。从技术上讲,保存一棵没有任何 child 的 tree 看起来是直截了当的。那么为什么 git 禁止这样做呢?

这本书中有一部分提到了这一点:

For each directory above the changed file (plus the repository root directory), a new tree object is created with a new identifier. A DAG is created starting from the newly created root tree object pointing to blobs (reusing existing blob references where the files content has not changed in this commit) and referencing the newly created blob in place of that file's previous blob object in the previous tree hierarchy. (A blob represents a file stored in the repository.)

我觉得这可能是原因,但它有点掩盖了我想要回答的细节。

最佳答案

原因其实很简单——git 索引 中的目录仅作为文件路径的一部分存在。

如果您有目录 dir1dir2dir1 包含 fileAfileBdir2 包含 fileC,git 将提交以下内容(即将以下内容添加到索引文件):

  • dir1/fileA
  • dir1/fileB
  • dir2/fileC

换句话说,dir1dir2 都不是真正提交的,它们只是根据其中包含的文件路径隐式构造的。

我不知道这是否有更深层次的原因,或者它只是让实现更容易,我不知道。

关于git - 为什么我不能在 git 中提交一个空文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26079618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com