>_ IzzyLab

Практическое задание

Достань значение из истории

средне

В /root/repo файл version.txt менялся несколько раз. Коммит, помеченный тегом v1, содержал в этом файле значение build-7f3a9; позже оно менялось, и сейчас в version.txt уже другое значение.

Извлеки из истории содержимое version.txt на момент тега v1 и запиши его в файл /root/answer.txt (ровно то историческое значение, без изменений). Рабочий файл version.txt при этом трогать не нужно.

Что потренируешь:
  • git show
  • ревизии
  • теги
  • синтаксис rev:path
  • история файла

Разбор темы

Содержимое файла на любой прошлой ревизии можно получить, не переключая рабочее дерево на неё: git понимает указатель вида <ревизия>:<путь>, где ревизией выступает хеш, ветка или тег. git show с таким аргументом выводит файл ровно таким, каким он был в том снимке. Это ключевая идея о том, что каждый коммит — иммутабельный снимок дерева, к которому всегда можно обратиться по имени, не трогая текущее состояние.

Что проверяется

  1. в answer.txt историческое значение version.txt

Как это выглядит