В чем разница между индексированием, кешированием и постановкой в ​​git?

Это одно и то же? Если да, то почему так много терминов ?!

Кроме того, я знаю, что есть такая штука, которая называется git stash, это место, где вы можете временно хранить изменения в своей рабочей копии, не фиксируя их в репозитории. Я считаю этот инструмент действительно полезным, но, опять же, название очень похоже на множество других концепций в git -> это очень сбивает с толку !!

44
задан allyourcode 18 August 2010 в 21:23
поделиться

1 ответ

Индекс/stage/cache - это одно и то же - что касается того, почему так много терминов, я думаю, что индекс был "первоначальным" термином, но люди сочли его запутанным, поэтому были введены другие термины. И я согласен, что поначалу это немного запутывает ситуацию.

Функция stash в git'е - это способ хранения "незавершённой" работы, которую вы не хотите фиксировать прямо сейчас, в объекте фиксации, который хранится в определённом каталоге/базе данных stash). Основная команда stash будет хранить нефиксированные изменения, внесённые в рабочий каталог (как кэшированные/постановочные, так и некэшированные/непостановочные изменения), а затем вернёт рабочий каталог в HEAD.

На самом деле она не связана с кэшем index/stage/cache, за исключением того, что она сохраняет нефиксированные изменения, находящиеся в кэше.

Это позволяет вам быстро сохранить состояние грязного рабочего каталога и индекса, чтобы вы могли выполнить другую работу в чистой среде. Позже вы можете вернуть информацию из объекта stash и применить ее к рабочему каталогу (даже если сам рабочий каталог находится в другом состоянии).

Официальная git stash manpage имеет довольно хорошие подробности, оставаясь при этом понятной. Там также есть хорошие примеры сценариев использования stash.

37
ответ дан 26 November 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: