После инициализации локального репозитория полезно задать некоторые настройки. Они задаются в командной строке 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
Хотя скачивать публичный репозиторий могут все, право на запись вы даете только избранным.
Чтобы пригласить пользователя:
- В настройках репозитория щелкните вкладку Collaborators и введите email или имя пользователя GitHub.
- Добавьте его — ему придет письмо с приглашением участвовать. Если он примет приглашение, то сможет отправлять изменения в ваш репозиторий.