Что означает git-rm под рабочим деревом и индексом?
Документация для git-rm
содержит это краткое описание:
git-rm - удаляет файлы из рабочего дерева и из индекса
Что именно подразумевается под рабочим деревом и индексом, и какие локальные или удаленные файлы будут удалены?
2 ответа
"Рабочее дерево" - это ваша проверка файлов, находящихся на диске.
"Индекс", "промежуточная область" или "кэш" (вы увидите, что все эти три элемента называются) являются внутренними для Git. Это место, где вы готовите следующий коммит. Когда ты git add
Вы копируете файлы из рабочего дерева в область подготовки. Когда ты git commit
Вы делаете то, что находится в области подготовки.
git rm
удаляет файлы как из рабочего дерева, так и из промежуточной области (если вы не попросите его просто удалить из промежуточной области с помощью --cached
).
Этот шпаргалка может помочь вам понять взаимосвязь между рабочим деревом, областью подготовки и HEAD (текущая извлеченная фиксация). Что еще более важно, он говорит вам, как управлять ими, потому что команды на самом деле не интуитивно понятны.
Это означает удаление из рабочего дерева: рабочего каталога дерева вашей файловой системы, где вы клонировали этот репозиторий, и из индекса в .git
каталог поддерживается Git. git rm никогда не удалит файл только из рабочего каталога, иначе он оставит базу данных индекса в несогласованном состоянии. Чтобы сообщить базе данных индекса об удалении файлов с помощью команды rm на основе Unix, вам необходимо запустить git commit -a
который по существу удаляет индекс удаленных объектов.