<style>.lazy{display:none}</style>Настройка Git репозитория

Настройка Git репозитория

В этом руководстве мы расскажем, как создать и настроить свой репозиторий в системе контроля версий Git.

В статье рассматриваются следующие темы:

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

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

Что такое Git репозиторий?

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

Инициализация нового репозитория: git init

Чтобы создать новый репозиторий, необходимо использовать команду 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 clone

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.

Сохранение изменений в репозитории: git add и git commit

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

  • Изменение директории на /path/to/project
  • Создание нового файла CommitTest.txt с содержимым ~”тестовые данные для обучения работе с Git”~.
  • Добавление с помощью команды git add файла CommitTest.txt в область хранения репозитория
  • Создание нового коммита с комментарием, описывающим, что именно было сделано в этом коммите
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 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 config

После настройки удаленного репозитория его 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 не будет опубликован. Обязательные поля помечены *