Управление репозиториями

Для начала у вас должен быть установлен и настроен Git. Об этом было в предыдущей части Основы Git для Linux.
Теперь настроим репозиторий Git для вашего проекта на этом сайте и подсоединим его к системе управления проектами Redmine.

Сначала необходимо найти наш публичный ключ для копирования на сайт. В Linux необходимо сгенерировать ключ следующей командой (команды выполняются в терминале):

$ ssh-keygen

Затем просто 3 раза подряд нажимаем Enter, чтобы оставить настройки по умолчанию.

На всякий случай (хотя и не обязательно, если все работает), необходимо сообщить системе (вернее ssh-agent) о том, что мы добавили/изменили ключи. Для этого необходимо выполнить следующую команду без аргументов, если ваш ключ имеет название по умолчанию id_rsa:

$ ssh-add

Или, если ваш ключ имеет другое название, то:

$ ssh-add имя_ключа

Список известных агенту ключей можно проверить так:

$ ssh-add -l

ssh-add необходимо запускать после каждого пересоздания ключей. Отображаем и копируем содержимое открытого ключа:

$ cat ~/.ssh/id_rsa.pub

Затем заходим в наш профиль на civnote.ru и добавляем туда текст скопированного на предыдущем шаге открытого ключа (не забудьте удалить все старые ключи из своего профиля!):

На шаге 2 (на картинке выше) придумываем уникальный идентификатор. На шаге 3 по умолчанию ключ создается просто как User key. Если код не будет загружаться на сайт, то попробуйте создать ключ как Deploy key. Но тогда нужно будет зайти в настройки проекта и затем открыть редактирование репозитория (это делается только в том случае, если вы добавили Deploy key. Deploy key и User key должны быть разными ключами!):

Добавляем права на доступ к репозиторию для Deploy ключей (в открывшемся окошке выбираем наш ключ):

Если в дальнейшем при пуше изменений на сервер, Pageant в Windows будет просить логин и пароль, то вновь зайдите в свой профиль, удалите старый ключ и создайте новый. И проверьте подключен ли у вас ключ в Pageant.

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

Хранилище автоматически создается на сервере при создании проекта с одним коммитом и Readme файлом. Теперь вы можете перейти на ссылку "Хранилище" вашего проекта просмотреть исходный код.

Открываем обзорную страницу своего проекта и копируем SSH адрес вашего репозитория:

Заливка кода в удаленный репозиторий

Теперь мы можем начать работать с нашим репозиторием. Например, вы являетесь разработчиком и только присоединились к проекту, в котором уже кипит работа. Сначала нужно склонировать репозиторий. Для этого в консоли (соответствующие команды не составит труда найти в TortoiseGit) вводим:

$ git clone gitolite@civnote.ru:name_of_your_rep.git

Затем вносим свои какие-либо изменения (или просто копируем наш код в папку с клонированным проектом - это удобно, если вы уже написали код, но версионный контроль еще не вели):

$ touch readme.txt
$ git add readme.txt
$ git commit -m 'My first commit'

Если вы уже вели версионный контроль, то в этом случае необходимо объединить изменения на вашем компьютере и изменения на сервере (т.к. там есть один коммит). Для этого сначала добавим адрес удаленного репозитория к своем локальному репозитория и скопируем изменения с сервера в свой репозиторий:

$ cd existing_git_repo
$ git remote add origin gitolite@civnote.ru:name_of_your_rep.git
$ git fetch origin

Затем сливаем вашу ветку master с удаленной веткой master в которой находится только один коммит:

$ git merge origin/master

И затем можем заливать изменения на сервер:

$ git push origin master

Более подробно ознакомиться с хитростями удаленной работы можно здесь

Если у вас в репозитории уже есть какой-то тестовый код, который надо удалить при добавлении рабочего кода, то сделать это очень просто. Достаточно склонировать или сделать pull для обновления локального репозитория (в зависимости от того, есть ли у вас репозиторий на своем компьютере), удалить эти файлы командой git rm name_of_file, закоммитить эти изменения и запушить их обратно на сервер. Все, репозиторий чист и доступен для добавления нового кода.

В итоге в удаленный репозиторий была добавлена первая информация, которую вы можете с распирающим чувством гордости посмотреть на вкладке "Хранилище" своего проекта.
Интерфейс хранилища довольно богат и позволяет наглядно следить за историей проекта - кто, когда и какие правки вносил в проект. Согласитесь - это очень удобно!

picture661-1.png (10,284 КБ) Александр Дмитриев, 21.03.2015 01:14

repository.png (28 КБ) Александр Дмитриев, 21.03.2015 01:14

key.png (51,602 КБ) Александр Дмитриев, 21.03.2015 01:14

puttygen1.png (52,411 КБ) Александр Дмитриев, 21.03.2015 01:14

add_key.png (141,89 КБ) Александр Дмитриев, 21.03.2015 01:14

settings_of_proj.png (57,232 КБ) Александр Дмитриев, 21.03.2015 01:14

add_deploy.png (92,143 КБ) Александр Дмитриев, 21.03.2015 01:14

Добавить изображение из буфера обмена (Максимальный размер: 20 МБ)