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

Как почистить Git-репозиторий?

Начал изучать Git и пока что не нашел для себя инфу, которая ответит мне на мой вопрос. Я сделал репозиторий на GitLab и запушил туда (git push) проект, но перед этим я не создал файл .gitignore.
Теперь же я додумался создать его, но добавив туда строку чтобы он игнорировал *.DS_Store, вижу что он почему-то не игнорирует его.

Как в репозитории удалить этот файл, чтобы потом он не ругался, что на компьютере и в репозитории на гитлабе разные версии?
  • Вопрос задан
  • 1363 просмотра
Подписаться 3 Простой 2 комментария
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Вот несколько фактов, которые помогут понять как работает Git.
  • Файл .gitignore действует только на ещё не отслеживаемые файлы.
  • Файл .gitignore предназначен для описания того, что мы не хотим СЛУЧАЙНО добавить в репозиторий. Либо не хотим случайно удалить переключив ветку.
  • Мы можем ПРИНУДИТЕЛЬНО добавить в репозиторий ЛЮБОЙ файл, даже если он описан в .gitignore.
  • Добавление файла в .gitignore не удалит сам файл из репозитория. Если файл УЖЕ в репозитории, то он продолжит отслеживаться, независимо от наличия .gitignore.
  • Если больше не хотим отслеживать какой-то файл, то просто удаляем его из репозитория. Ключ --cached позволит оставить файл в рабочем каталоге текущего репозитория если он нужен.
git rm --cached -- '.DS_Store'
git commit

Но последний рецепт сработает только на одном компьютере. Если коллеги переключатся на этот коммит, то файл удалится у них из рабочего каталога.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Советую просвятиться на тему:
man git-gc
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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