Задать вопрос
@darkoment

Как git изменяет содержимое файла?

Для чего конкретно нужен git - это понятно, но вот как git меняет содержимое файла (какого-то исходника), когда, к примеру, происходит переключение между коммитами? Он находит физическую копию или же у него есть инструкция, по которой он возвращает файл в нужное состояние с нужным содержимым при помощи хэша?
  • Вопрос задан
  • 201 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Он находит физическую копию или же у него есть инструкция, по которой он возвращает файл в нужное состояние с нужным содержимым при помощи хэша?

У него есть инструкция (коммит содержит ссылку на дерево, дерево содержит имена и атрибуты файлов и ссылки на их содержимое -- хеши блобов) и он находит физическую копию с помощью хеша, поскольку git -- это простое хранилище ключ-значение. Подробности: раз, два.
Ответ написан
Комментировать
delphinpro
@delphinpro
frontend developer
Что конкретно делает git - это понятно

Видимо, не очень понятно. Гит хранит разницу состояний между коммитами – diff. Yf его основе строит содержимое при переключении. Полные копии всех состояний не хранятся.
Ответ написан
Lynn
@Lynn
nginx, js, css
По большому счёту вам должно быть всё равно как он это делает.

Но если очень приблизительно, то в папке .git лежат (в сжатом виде) копии всех файлов по всей истории и когда вы переключаете коммиты git просто перезаписывает файлы из нужной копии.

Как конкретно хранятся (а иногда и не хранится) файлы это отдельная тема.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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