Что такое git-cache и что хранится в git-cache
На самом деле, я много чего читал о git.
Я знаю, что могу удалить кеш
git rm --cached .
команда, но я не могу понять концепцию git-cache.
Что такое кеш? А где в GIT расположение кеширования? Этот кеш хранится в ОЗУ или в файле? Используется ли кеш для повышения производительности в git?
Что хранится в кеше?
1 ответ
Git - это довольно старая (более 15 лет) программа с большим количеством частей и некоторой внутренней терминологией, не все из которых очень хорошо устарели. Выражение кеш и написание флага как
--cached
, является одним из таких. Самый современный термин для этой сущности - это промежуточная область, которая отражает то, как вы ее используете, но наиболее распространенным термином в Git для этой сущности является индекс.
Итак, в общем, если кто-то или что-то упоминает индекс, промежуточную область или кеш, они, вероятно, имеют в виду одно и то же:
где находится кеш в git?
Использовать
git rev-parse --git-dir
чтобы найти каталог Git. В каталоге Git найдите файл с именем
index
. Но прежде чем вы это сделаете, проверьте переменную окружения
$GIT_INDEX_FILE
: если это установлено, попробуйте вместо этого использовать этот путь.
В оболочке,1, это в файле:
ls -l ${GIT_INDEX_FILE-$(git rev-parse --git-dir)/index}
Этот файл может существовать, а может и не существовать; если он не существует, значит на данный момент нет индекса и кеш пуст.
1 Это предполагает
/bin/sh
или совместимый синтаксис; некоторые снаряды имеют разную конструкцию.
Этот кеш хранится в ОЗУ или в файле?
Как мы только что видели, он находится в файле. Однако Git читает этот файл, после чего он находится в ОЗУ (в любом формате, который наиболее полезен в памяти, который в целом отличается от его внешнего вида на диске). Сам файл может содержать директивы, предписывающие частям Git читать и другие файлы.
Используется ли кеш для повышения производительности в git?
Да: в его роли в качестве кэш - памяти, намерение состоит в том, чтобы повысить производительность. Однако у индекса больше ролей, чем просто "кэш повышения производительности". Его основная роль - "плацдарм", отсюда и название " плацдарм". Он также выполняет важную функцию при разрешении конфликтующих слияний, для которых полезен только общий термин index. (Даже в этом случае слово index не передает никакой реальной информации. В некотором смысле это действительно хорошо, потому что содержимое файла (ов) может измениться в будущих версиях Git.)
Я знаю, что могу удалить кеш
git rm --cached .
команда
Это не удаляет сам кеш. Он удаляет записи из кеша (и даже в этом случае они могут быть помечены только как "удаленные" внутри, а также есть расширения на диске для хранения некоторых записей, которые могут быть восстановлены в случае необходимости).
что такое кеш?
Как общий термин в вычислительной технике, это очень общий термин.
Что хранится в кеше?
Источник Git включает в себя технический документ с подробной информацией. Вы можете увидеть это в действии, используя
git ls-files --stage
и
git ls-files --debug
.