Первоначальные настройки GIT

После инициализации локального репозитория полезно задать некоторые настройки. Они задаются в командной строке Git Bash и хранятся в трех файлах настроек: системных, пользовательских и конкретного репозитория.

Имя и Email

Без этих настроек вы просто не сможете работать, GIT их запрашивает в самом начале в принудительном порядке.

В истории снимков всегда можно просмотреть информацию о каждом пользователе, вносившем изменения: какое у него имя и email. Без настроек имени и email вы просто не сможете выполнять команду commit. Эти данные чисто информативные,  они не служат для авторизации, но, тем не менее, они важны.

Задать email для всех своих репозиториев:

git config --global user.email  "email@example.com"

Задать имя:

git config --global user.name "John"

Посмотреть текущий email:

git config --global user.email

Вы не обязаны задавать в конфигурации тот же email, который вы использовали для регистрации на GitHub. Как уже говорилось, эти данные не используются для авторизации. Но все же GitHub автоматически связывает этот email из конфигурации с аккаунтом на GitHub (если он есть в каком-то аккаунте) и подписывает на сайте GitHub пользователя, вносившего изменения. Если же задан несуществующий email, то связи с пользователем GitHub не будет (имя автора снимка на сайте GitHub не будет ссылкой на его аккунт):

Для аутентификации же email и пароль потребуется вводить при отправке данных в удаленный репозиторий (команда push), если обмен данным происходит через HTTPS-протокол. В этом случае откроется окно браузера, в котором надо ввести данные уже от реального GitHub-аккаунта.

Если же обмен данными происходит через SSH-протокол, то для аутентификации обычно используются SSH-ключи, так что имя и пароль тут роли не играют.

Запомнить учетные данные

Это замечание касается работы через HTTPS-протокол.

Чтобы при отправке изменений на GitHub каждый раз не вводить имя и пароль, имеет смысл перед выполнением команды push попросить запомнить ваши данные:

git config credential.helper store

Потом выполнить отправку с указанием имени и пароля:

git push https://github.com/javakitt/example
Username: <type your username>
Password: <type your password>

И уже в следующий раз вводить имя пароль не придется.

Где физически хранится конфигурация

Как уже говорилось, конфигурация хранится в трех файлах.  Дело в том, что ее можно задать на уровне системы, на уровне пользователя и на уровне репозитория. Для каждого уровня свой файл. Каждая более узкая конфигурация перекрывает предыдущую. То есть пользовательские настройки перекрывают системные, а настройки конкретного репозитория перекрывают ваши общие настройки пользователя. Вот эти файлы для Windows (хотя лезть в них напрямую возможно не понадобится):

  • Системная конфигурация: C:\Program Files\Git\mingw64\etc\gitconfig Задается из командной строки с параметром —system
  • Пользовательская конфигурация: C:\Users\Имя\.gitconfig  Задается из командной строки с параметром —global
  • Конфигурация репозитория: C:\…\hello\.git\config Задается без параметров Просто выполняете команду git config в нужном репозитории. Например, задать имя в текущем репозитории:
    git config user.email "myemail@gmail.com"

    Файл .gitignore

Этот файл почти наверняка придется создать в репозитории. Впрочем, его сразу предлагается включить в проект автоматически при создании проекта на GitHub.

В нем задается список неотслеживаемых файлов, которые не надо добавлять в репозиторий. Обычно это скомпилированные, исполняемые файлы, файлы логов и прочие служебные файлы, которым не место в репозитории.

Файл .gitignore обычно хранится в папке репозитория (и желательно его отправить в общий репозиторий на GitHub, чтобы все могли им воспользоваться — если вы его создавали локально).

Содержимое .gitignore

Например, для проекта на Java исключим скомпилированные файлы с расширением .class и файлы с расширением .log:

# Compiled class file
*.class

# Log file
*.log

Примеры .gitignore для каждого языка хранятся тут — поищите, скорее всего не придется  составлять его самостоятельно, а только отредактировать под свои нужды.

Что еще надо знать о .gitignore:

  • Он не влияет на уже отслеживаемые файлы, только предотвращает попадание новых.
  • Может быть несколько файлов .gitignore: в папке, подпапке и т.д. Каждый следующий уровень перекрывает предыдущий.
  • Можно создать и глобальный .gitignore, который действует на все ваши репозитории, но этого обычно не требуется
  • Шаблоны файлов задают в столбик. Все правила есть в документации.

Чтобы другой пользователь мог вносить изменения в ваш репозиторий, надо дать ему право на запись. Рассмотрим, как сделать это.

Предоставление прав на запись в репозиторий GitHub

Хотя скачивать публичный репозиторий могут все, право на запись вы даете только избранным.

Чтобы пригласить пользователя:

  1. В настройках репозитория щелкните вкладку Collaborators и введите email или имя пользователя GitHub.
  2. Добавьте его — ему придет письмо с приглашением участвовать. Если он примет приглашение, то сможет отправлять изменения в ваш репозиторий.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *