Иногда встречаю в файле .gitignore
то, чего там быть никак не должно. Например, папка .idea
, в которой лежат конфиги известных IDE от JerBrains. Это часть вашего рабочего окружения и она никаким боком не относится к проекту и репозиторию. Если над проектом работает несколько человек и каждый из них добавит конфиги своего окружения в .gitignore, то он превратится в нечитаемую помойку.
В этом топике я расскажу о правильных способах исключения файлов и о том когда какой способ использовать.
Исключение для репозитория
Когда у вас есть файлы, которые специфичны для данного проекта и для вашего рабочего окружения(например, логи, third-party утилита) используйте .git/info/exclude
. Этот файл не коммитуется и остается только в локальном репозитории.
Исключение для компьютера
Когда у вас несколько проектов и везде создается что-либо, что вы не хотите коммитить(например, *.swp файлы Vim) используйте ~/.gitconfig
. Вышеприведённый пример папки .idea, которая создается для каждого проекта как раз подходит сюда. Создайте файл .gitexcludes и выполните:
git config --global core.excludesfile ~/.gitexcludes
или вручную добавьте в ~/.gitconfig
:
[core]
excludesfile = ~/.gitexcludes
Сразу после сохранения ~/.gitconfig
вы не должны видеть указанные файлы/папки в списке Untracked files.
Я люблю Git, но и он порой непоследователен в мелочах. Обращаю ваше внимание на то, что в первом случае мы редактируем файл .git/info/exclude
(без s
на конце), а во втором используем опцию excludeSfile
(c s
в середине). Не потеряйте время из-за возможной опечатки.
Работа с Git в большинстве случаев означает работу в команде, поэтому не усложняйте жизнь тем, кто будет работать с вами деталями вашего рабочего окружения. Хороших коммитов! :)
Автор: limonte