Как настроить репозиторий Git

В этом руководстве мы расскажем, как создать и настроить свой репозиторий в системе контроля версий Git. Также вы узнаете, как использовать основные команды Git, фиксировать измененный файл в репозитории, просматривать историю проекта и настраивать соединение с сервисом хостинга Git (Bitbucket).

Содержание

Также вы можете посмотреть видео:

Скачать одну из самых популярных книг по тестированию "Как тестируют в Google"

Как инициализировать новый репозиторий Git

Git-репозиторий – это виртуальное хранилище вашего проекта. Здесь можно хранить версии вашего кода, к которым легко обратиться при необходимости. 

Чтобы создать новый репозиторий, необходимо использовать команду git init . Команда git init выполняется один раз и применяется при первоначальной настройке нового репозитория. Выполнение этой команды создаст новый подкаталог .git в вашей текущей рабочей директории. Также будет создана новая основная ветка. 

Версионирование существующего проекта с помощью нового репозитория

В этом примере предполагается, что у вас уже есть существующая папка проекта, в которой вы хотите создать репозиторий. Сначала, с помощью команды cd, перейдите в корневую папку проекта, а затем выполните команду git init .

cd /path/to/your/existing/code 
git init

Также можно передать команде git init в качестве аргумента существующую папку проекта. При этом тоже произойдет инициализация нового репозитория, но с привязкой к указанной папке.

git init <project directory>

Для более подробного изучения команды git init рекомендуем посетить страницу git init с углубленной информацией о команде.

Как клонировать существующий репозиторий Git

git clone
Примерная визуализация работы команды git clone

Если проект уже создан в центральном репозитории, то наиболее распространенным способом получения его локальной копии является команда clone. Как и git init, копирование (клонирование) обычно выполняется один раз. После того как разработчик получил рабочую копию, все последующие операции по контролю версий  будут осуществляться через его локальный репозиторий.

git clone <repo url>

Команда git clone используется для создания копии (клонирования) удаленного репозитория. В качестве параметра в команду git clone передается URL-адрес репозитория. Git поддерживает несколько сетевых протоколов и соответствующих форматов URL. В этом примере мы будем использовать SSH-протокол Git.

URL-адреса SSH в Git имеют следующий шаблон: git@HOSTNAME:USERNAME/REPONAME.git

Пример URL-адреса SSH в Git будет выглядеть так: git@bitbucket.org:rhyolight/javascript-data-store.git. Здесь параметры шаблона имеют следующие значения:

  • HOSTNAME: bitbucket.org
  • USERNAME: rhyolight
  • REPONAME: javascript-data-store

После выполнения команды последняя версия файлов из основной ветки удаленного репозитория будет добавлена в новую папку. Новая папка будет названа в соответствии с параметром REPONAME, в данном случае – javascript-data-store. В папке будет содержаться полная история удаленного репозитория, а также только что созданная основная ветка.

Дополнительную документацию по использованию команды git clone и поддерживаемым форматам URL-адресов в Git можно найти на странице git clone.

Сохранение изменений в репозитории

Теперь, когда репозиторий инициализирован или клонирован, вы можете зафиксировать в нем изменения версий файла. Следующий пример предполагает, что ваш проект находится по адресу /path/to/project. В примере последовательно выполняются следующие шаги:

  • Изменение директории на /path/to/project
  • Создание нового файла CommitTest.txt с содержимым “test content for git tutorial”.
  • Добавление файла CommitTest.txt в область хранения репозитория с помощью команды git add
  • Создание нового коммита с комментарием, описывающим, что именно было сделано в этом коммите
cd /path/to/project 
echo "test content for git tutorial" >> CommitTest.txt 
git add CommitTest.txt 
git commit -m "added CommitTest.txt to the repo"

После выполнения этих команд в историю вашего репозитория будет добавлен файл CommitTest.txt, и репозиторий будет отслеживать последующие обновления этого файла.

В рассмотренном примере были использованы две новые команды: add и commit. Так как пример был упрощенным, рекомендуем подробнее ознакомиться с обеими командами на страницах git add и git commit. Команда git add часто используется вместе с флагом --all. С помощью команды git add --all в репозиторий будут добавлены все изменения и неотслеживаемые файлы (в папке проекта), а также будет обновлено дерево изменений (коммитов) репозитория.

Совместная работа с репозиторием

Схема коммитов в репозитории до и после применения git push
Визуализация команды git push

Важно понимать, что рабочая копия кода в Git сильно отличается от рабочей копии, которую вы получаете, загружая исходный код из репозитория SVN (Subversion). В отличие от SVN, в Git нет разницы между копиями и центральным репозиторием – все они являются полноценными Git-репозиториями.

Поэтому совместная работа в Git принципиально отличается от совместной работы в SVN. Если работа в SVN основана на отношении между центральным репозиторием и рабочей копией, то модель совместной работы в Git строится на взаимодействии репозитория с репозиторием. Вместо загрузки рабочей копии в центральный репозиторий SVN, в Git вы отправляете коммиты из одного репозитория в другой или забираете их.

Если этого требует ваш проект, то вы легко можете задать особую роль необходимым Git-репозиториям. Например, назначив один из Git-репозиториев “центральным”, можно воспроизвести централизованный процесс с использованием Git. Но такой подход требует отдельных договоренностей внутри команды, так как он не встроен в саму систему контроля версий.

Сравнение чистых и клонированных репозиториев

Если для создания локального репозитория вы использовали команду git clone, то он уже готов к удаленной совместной работе. Команда git clone автоматически настраивает ваш репозиторий, а значение параметра remote будет соответствовать URL-адресу Git, по которому был клонирован репозиторий. Это значит, что сразу после того, как вы внесете изменения в файл и зафиксируете их (git commit), вы сможете отправить эти изменения в удаленный репозиторий c помощью команды git push.

Если же  для создания нового репозитория вы использовали команду git init, то у вас не будет удаленного репозитория для отправки изменений. Обычно при инициализации нового репозитория пользователи обращаются на сервер Git-хостинга, например Bitbucket, и создают репозиторий там. Такой сервис предоставит URL-адрес Git , который затем можно добавить в свой локальный репозиторий. После создания удаленного репозитория с помощью выбранного сервиса вам нужно будет обновить свой локальный репозиторий, выполнив привязку. Процесс привязки мы более подробно описали в главе “Конфигурация и настройка” ниже.

Если вы решили поддерживать собственный удаленный репозиторий, то вам нужно создать “чистый” репозиторий. Для этого команды git init и git clone принимают аргумент --bare . Самая распространенным причина использования такого “чистого” репозитория – создание удаленного центрального репозитория Git.

Конфигурация и настройка Git-репозитория

После настройки удаленного репозитория его URL-адрес нужно добавить в локальный файл git config, а также создать “upstream”-ветку для ваших локальных веток. Такую возможность предоставляет команда git remote.

git remote add <remote_name> <remote_repo_url>

Эта команда свяжет адрес удаленного репозитория <remote_repo_url> с его названием <remote_name> в вашем локальном репозитории . После привязки удаленного репозитория в него можно будет отправлять локальные ветки с помощью команды git push.

git push -u <remote_name> <local_branch_name>

Эта команда переместит ветку локального репозитория с именем <local_branch_name> в удаленный репозиторий <remote_name>.

Более подробную информацию о работе команды git remote смотрите на странице git remote.

Установка параметров конфигурации Git

Помимо настройки URL-адреса удаленного репозитория, вам также может понадобится установить глобальные параметры конфигурации, например имя пользователя или электронный адрес. Команда git config позволит вам настроить инсталляцию Git из командной строки. При помощи этой команды можно установить любые настройки: от информации о пользователе до его предпочтений и характеристик репозитория.

Git хранит параметры конфигурации в трех различных файлах, что позволяет ограничивать область видимости на уровне отдельных репозиториев (локальная), пользователя (глобальная) или всей системы (системная):

  • Локальная область видимости: /.git/config. Здесь хранятся настройки на уровне репозитория.
  • Глобальная область видимости: /.gitconfig. Настройки на уровне пользователя. Здесь хранятся настройки с флагом --global.
  • Системная область видимости: $(prefix)/etc/gitconfig. Настройки на уровне всей системы.

Укажите имя автора, которое будет использоваться для всех коммитов в текущем репозитории. Обычно для установки параметров конфигурации для текущего пользователя используется флаг --global.

git config --global user.name <name>

Эта команда устанавливает имя автора, которое будет использоваться для всех коммитов текущего пользователя.

Если добавить аргумент --local или вообще не передавать аргумент при выполнении программы git config, то будет установлено user.name для текущего локального репозитория.

git config --local user.email <email>

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

git config --global alias.<alias-name> <git-command>

Задайте “горячие клавиши” для команд Git. Это мощный инструмент для создания собственных комбинаций клавиш для часто используемых команд Git. Простой пример:

git config --global alias.ci commit

Выполнение этой команды создаст новую команду ci, которую можно использовать как сокращенный вариант команды git commit.

git config --system core.editor <editor>

Выберите текстовый редактор, который будет использоваться командами типа git commit у всех пользователей текущего компьютера. Аргументом <editor> должна быть команда, запускающая нужный вам редактор. В этом примере так же представлен аргумент --system – он задает конфигурацию для всей системы целиком, включая всех пользователей и все репозитории на устройстве.

git config --global --edit

С помощью этой команды можно открыть файл глобальной конфигурации в текстовом редакторе для последующего ручного редактирования.

Для того, чтобы узнать больше об алиасах в Git, уровнях конфигураций и подробнее ознакомиться с настройкой текстового редактора в Git, посетите страницу git config.

Пояснения

Все параметры конфигурации хранятся в обычных текстовых файлах, поэтому команда git config – это на самом деле всего лишь удобный интерфейс командной строки. Как правило, настройка инсталляции Git требуется только при первом запуске на новом устройстве, и практически во всех случаях вам понадобится только аргумент --global . Одно из важных исключений – необходимость перезаписать адрес электронной почты автора. Вы можете использовать свой личный электронный адрес для локальных репозиториев и репозиториев с открытым исходным кодом, а свой рабочий электронный адрес для репозиториев, связанных с работой.

Так как Git хранит параметры конфигурации в трех отдельных файлах, иногда параметры в них конфликтуют. В таком случае локальные настройки переопределяют пользовательские настройки, которые в свою очередь переопределяют системные настройки. Если вы откроете один из этих файлов, то увидите нечто подобное:

[user] name = John Smith email = john@example.com [alias] st = status co = checkout br = branch up = rebase ci = commit [core] editor = vim

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

Пример

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

Представьтесь репозиторию Git с помощью команды git config :

git --global user.name "John Smith" git config --global user.email john@example.com

Выберите свой любимый текстовый редактор:

git config --global core.editor vim

Создайте несколько “горячих клавиш” (алиасов) для наиболее часто используемых команд Git:

git config --global alias.st status 
git config --global alias.co checkout 
git config --global alias.br branch 
git config --global alias.up rebase 
git config --global alias.ci commit

В результате у вас будет создан файл ~ /.gitconfig, описанный в предыдущем разделе.

Резюме

Из этой статьи вы узнали, как создать репозиторий Git двумя способами: при помощи команд git init и git clone. Также мы рассмотрели команды git addgit commitgit push и git remote и даже использовали их на простых примерах.

Перевод статьи «Setting up a repository».

Оставьте комментарий

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