Что такое 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.

Другие вопросы по тегам