Выбор ответа Junior Git обновлено

Файл в .gitignore всё равно в коммитах

Вопрос

Файл .env случайно закоммитили. Его добавили в .gitignore, но git status по-прежнему показывает его изменения. Почему и что сделать?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Игнор не действует на отслеживаемые: git rm --cached .env. .gitignore говорит Git не начинать отслеживать файлы.

Варианты ответа

  1. .gitignore применяется только после перезапуска терминала
  2. Игнор не действует на отслеживаемые: git rm --cached .envправильный ответ
  3. Нужно указать в .gitignore полный путь к .env
  4. Надо выполнить git reset --hard, и файл станет игнорироваться

Разбор

.gitignore говорит Git не начинать отслеживать файлы. Уже отслеживаемый файл он не трогает. git rm --cached убирает файл из индекса, оставляя его на диске, и после коммита игнор начинает работать. Секреты из такого файла остаются в истории, поэтому их нужно сменить.

  • Терминал тут ни при чём.
  • Пути в .gitignore пишутся относительно репозитория, а не абсолютные.
  • reset --hard выбросит локальные правки и ничего не изменит в отслеживании.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.