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

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

Для чего конкретно нужен git - это понятно, но вот как git меняет содержимое файла (какого-то исходника), когда, к примеру, происходит переключение между коммитами? Он находит физическую копию или же у него есть инструкция, по которой он возвращает файл в нужное состояние с нужным содержимым при помощи хэша?
  • Вопрос задан
  • 194 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 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 просто перезаписывает файлы из нужной копии.

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

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽