Предыдущий ролик Следующий ролик  

Видео урок: Глобальное игнорирование файлов

Git: обучение основам

Мы видели, как мы можем сказать Git, какие файлы нужно игнорировать внутри рабочей директории, и мы сделали это, вставив файл gitignore в корень рабочей директории, а также сохранили и закоммитили его в репозиторий. Но что будет, если мы вдруг обнаружим, что игнорируем одни и те же файлы в различных проектах и разных Git репозиториях? Или, как мы видели в последнем ролике, некоторые файлы, которые мы хотим проигнорировать, являются файлами операционной системы, и мы хотим игнорировать их все время, потому что они являются тем видом файлов, которые мы не хотим отслеживать.

И чтобы сделать это, мы настроим Git так, чтобы он глобально игнорировал определенные файлы. Это обозначает, что мы игнорируем эти файлы во всех репозиториях, а не только в каком-то конкретном репозитории, и настройки для этого глобального игнорирования не будут находиться внутри репозитория, они должны находиться извне, верно? Это часть нашей Git конфигурации, не конфигурации проекта, а Git конфигурации. А это обозначает, что она не будет сохраняться в репозитории. Люди, которые используют наши репозитории, если они скачают и начнут работать с ними, они не получат конфигурацию, то есть репозиторий настроен на конкретное игнорирование конкретных пользователей. Эти настройки существуют только на конкретном компьютере. И это хорошо, потому что это обозначает, что я могу установить настройки так, как мне нравится, я могу игнорировать файлы, которые я хочу игнорировать, и нам не нужно беспокоиться о том, что у кого-то другие настройки, верно? Мы просто игнорируем то, что хотим сами.

Это хорошо, например, если я работают на Mac, а кто-то другой, кто работает с репозиторием, использует Windows, тогда у каждого из нас могут быть свои собственные gitignore файлы, конкретные для наших операционных систем. Нам не нужно ни с кем их делить. Но с другой стороны, если я скажу ему игнорировать все файлы с логами, файлы, которые заканчиваются на .log, и это находится в моих глобальных настройках, а не настройках проекта, а затем кто-то еще начинает использовать репозиторий, то тогда Git будет показывать то, что нужно отслеживать файлы с логами до тех пор, пока другой пользователь не начнет сам их игнорировать.

Вам просто нужно всегда понимать, когда файлы, что нужно игнорировать, должны быть перечислены только у вас или они должны быть перечислены в настройках для репозитория. Хорошо, как же на самом деле реализовать игнорирование? Это можно сделать при помощи git config. Мы видели эту команду, когда в начале устанавливали Git. Мы прописываем git config с опцией global, а затем core.excludesfile, а затем говорим, где находится файл. Файл может быть назван так, как мы хотим, мы можем разместить его, где хотим, нам нужно просто сказать Git в его файле config - вот этот файл, который ты должен использовать для глобального игнорирования. Давайте создадим такой.

Прямо сейчас я нахожусь внутри директории explore_ california, и я вставлю глобальное игнорирование в мою пользовательскую директорию, прямо сюда. И тут же был до этого мой git config, помните, ls la, и внутри Users/kevinskoglund вы увидите мой глобальный файл gitconfig. Я вставляю файл gitignore прямо сюда. Вы можете создать его различными способами, вы можете использовать текстовый редактор. Я использую текстовый редактор nano, который есть в Mac OS X и в Unix - это действительно простой текстовый редактор - и сказать ему, что он должен зайти в Users/kevinskoglund и создать файл с именем .gitignore_global.

Еще раз, вы можете назвать его, как хотите, мы назовем его просто gitignore. Называю его gitignore_global, и теперь совершенно понятно, что это глобальный файл. И внутри этого файла мы можем вставить все, что хотим проигнорировать. Поскольку я работаю на Mac, я хочу игнорировать .DS_Store, и .Trashes, и .Spotlight-V100, это несколько вещей, которые часто всплывают и которые нужно игнорировать, и это файлы, которые использует операционная система для отслеживания.

Теперь я это закрываю, говорю yes (Да) и сохраняю его с тем именем файла, что я ему дал. Теперь, если мы снова проверим la / Users/kevinskoglund, вот мы здесь. Вы видите, что файл на месте, и последнее, что мне нужно сделать, это сказать git config про этот файл, итак, git config --global core.excludesfile и затем путь к файлу. Очищаю экран, чтобы было лучше видно. В Unix для сокращения просто используется тильда, которая представляет вашу пользовательскую директорию, так что вы пишете ~/.gitignore_global, и, возможно, я так и сделаю, но вы также можете прописать и полный путь, и именно это вы будете делать под Windows, и мы вставляем сюда полное имя, kevingskoglund, это полный путь.

Если мы нажмем Return, все добавится в наш файл config. Если в файле config мы посмотрим на /Users/kevinskoglund/.gitconfig, мы увидим, что здесь есть файлы, которые нужно игнорировать. Итак, это файл, который мы будем использовать для глобального игнорирования, то есть эти файлы будут игнорироваться в каждом репозитории на компьютере.