事实上,我读了很多关于 git 的东西。
我知道我可以通过命令删除缓存,但我无法理解git-cachegit rm --cached .的概念。
什么是缓存?而GIT中的缓存位置又在哪里呢?该缓存是存储在 RAM 中还是文件中?git 中使用缓存来提高性能吗?
缓存中存储了什么?
tor*_*rek 11
Git 是一个相当古老(15 年以上)的程序,有很多部分和一些内部术语,但并非所有这些都已经过时了。表达式the cache以及标志的拼写 as--cached就是其中之一。该实体最现代的术语是暂存区,它反映了您如何使用它,但Git 中该实体最常见的术语是索引。
因此,一般来说,如果某人或某物提到索引、暂存区域或缓存,它们可能意味着相同的事情:
git 的缓存位置在哪里?
用于git rev-parse --git-dir查找 Git 目录。在 Git 目录中,查找名为index. 但在执行此操作之前,请检查环境变量$GIT_INDEX_FILE:如果已设置,请尝试使用该路径名。
在 shell 中,1然后,它在文件中:
ls -l ${GIT_INDEX_FILE-$(git rev-parse --git-dir)/index}
Run Code Online (Sandbox Code Playgroud)
该文件可能存在也可能不存在;如果不存在,则此时没有索引,缓存为空。
1这假定/bin/sh或兼容语法;有些 shell 有不同的结构。
该缓存是存储在 RAM 中还是文件中?
正如我们刚才看到的,它在一个文件中。然而,Git会读取此文件,然后将其存储在 RAM 中(以内存中最有用的任何格式,这通常与其在磁盘上的外观不同)。文件本身也可能包含指示 Git 部分读取其他文件的指令。
git 中使用缓存来提高性能吗?
是的:作为缓存,其目的是提高性能。然而,索引的作用不仅仅是“作为提高性能的缓存”。它的主要作用是作为“集结区”,因此得名集结区。它还具有解决冲突合并的主要功能,对此只有通用术语索引才有用。(即使如此,索引这个词也没有传达任何真实信息。从某种意义上说,这实际上是一件好事,因为文件的内容可能会在 Git 的未来版本中发生变化。)
我知道我可以通过
git rm --cached .命令删除缓存
这不会删除缓存本身。它从缓存中删除条目(即使这样,它们也只能在内部被标记为“已删除”,并且还有磁盘上的扩展来保留一些条目,以便在需要时复活)。
什么是缓存?
作为计算领域的通用术语,它非常通用。
缓存中存储了什么?
Git 源代码包含一份包含详细信息的技术文档。git ls-files --stage您可以使用和来查看它的实际效果git ls-files --debug。
| 归档时间: |
|
| 查看次数: |
9309 次 |
| 最近记录: |