Git.alt/Краткое руководство

Материал из ALT Linux Wiki

Перейти к: навигация, поиск
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Содержание

Введение

ALT Linux Team использует для работы над пакетами Sisyphus систему контроля версий git, сборочную систему gear и хостинг git.alt.

Эта страница приводит примеры использования git.alt для работы над пакетами, но не является справочником по git.alt или учебником по git.

Настройка

Убедитесь, что ваш SSH-ключ зарегистрирован принимающими в команду и проведите настройку как описано в справочнике.

Совместная работа над существующим репозиторием

Совместная работа над пакетами в git строится по следующей схеме:

[ user A ]         [ user B ]
    |   [repo A/X]     |
    |       |          |
    |       |----------+-->[repo B/X]  -- B клонирует репозиторий A/X в свой B/X
    |       |          |       |
    |       |          |------>|       -- B работает над содержимым репозитория
    |       |          |------>|
    |       |          |------>|       -- B решает, что результат ему нравится
    |<-----------------|       |       -- B оповещает A о том, что в B/X
    |       |          |       |          имеется что-то новое
    |-------+<-----------------|       -- A добавляет (pull/push) содержимое
    |       |          |       |          B/X в A/X

При дальнейшей работе сценарий повторяется, за исключением того, что B не клонирует репозиторий A/X, а подтягивает (pull) из него новые изменения.

Как это реализуется на практике?

Для поиска репозитория для клонирования используется команда find-package:

$ ssh git.alt find-package bugzilla
/people/vvk/packages/bugzilla.git	1168522087
$

Склонировать репозиторий можно с помощью команды clone:

$ ssh git.alt clone /people/vvk/packages/bugzilla.git
Initialized empty Git repository in /people/dottedmag/packages/bugzilla.git/
$

Эта команда создаст вашу копию репозитория на сервере git.alt. Для работы с ним необходимо склонировать этот репозиторий на локальную машину:

$ git clone ssh://git.alt/people/dottedmag/packages/bugzilla.git
Initialized empty Git repository in /home/dottedmag/bugzilla/.git/
....
$

С этим git-репозиторием можно работать как обычно: править, делать commit и так далее. Поскольку для склонированного репозитория создаётся remote с названием origin, то git-push тоже работает:

$ git push
...
$

Нотификации производятся вручную - почтой или через bugzilla. Аналога pull request из github или gitorious на git.alt пока что нет.

Втягивание чужих изменений производится стандартными git-средствами: добавлением remote

$ git remote add someuser ssh://git.alt/people/someuser/bugzilla.git

засасыванием изменений:

$ git fetch someuser master

наложением их:

$ git merge someuser/master

и отправкой в git.alt:

$ git push

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

Создать свой репозиторий на git.alt очень просто:

$ ssh git.alt init-db test
Initialized empty Git repository in ./
girar-init-db:	/people/dottedmag/public/test.git
$

Поскольку в созданном репозитории нет ни одного коммита, то git clone будет ругаться при попытке склонировать. Вместо создадим пустой локальный репозиторий:

$ mkdir test; cd test; git-init
Initialized empty Git repository in /home/dottedmag/test/.git/
$

Закоммитим в него нужное содержимое и отправим на git.alt:

$ git remote add origin ssh://git.alt/people/dottedmag/packages/test.git
$ git push origin master
...
$

Указание remote и бранча в команде push необходимо только в первый раз - для создания бранча master в удалённом репозитории.

 
Личные инструменты