Участник:HihinRuslan/Памятка по работе с git/gear
Памятка по работе с git/gerar
Создана для личного применения. Т.к. я сборкой через git пользуюсь редко, буду вносить сюда всё, что нужно запомнить для работы с git/Gear.
Термины и сокращения применяемой в памятке:
ЛР = Локальный репозиторий — репозиторий на моём компе. УР = Удалённый репозиторий — личный репозиторий на git.altlinux.ru. СР = Системный репозиторий — репозиторий входящий в различные ветки системных репозиториев — Сизифа и различных бренчей. ДР = другой репозиторий — удалённые репозитории друзих пользователей. ЧР = чужой репозиторий — все другие репозитории, не относящиеся к ALT Linux
Создать ЛР
mkdir имя_пакета; cd имя_пакета; git init
Создать УР
ssh git.alt init-db имя_пакета ssh git.alt init-db public/имя_пакета
Добавление файла README в ЛР
touch README git add README git commit -m 'first commit'
Удаление файла README из ЛР
git rm README git commit
Забросить ЛР в УР
git remote add origin git.alt:packages/test.git git push origin master
Указание УР origin и бранча master в команде push необходимо только в первый раз для создания бранча master в УР. git remote add создаёт в конфиг-файле ЛР запись, подобную такой:
[remote "origin"] url = ssh://git.alt/people/dottedmag/packages/test.git fetch = +refs/heads/*:refs/remotes/origin/*
И поэтому в дальнейшем
git push
будет отправлять в нужный УР все локальные ветки.
Удалить УР
ssh git.alt rm-db <path to git repository>
Например:
ssh git.alt rm-db public/имя_пакета
Копировать ДР в ур
ssh git.alt clone /people/ИМЯ_ПОЛЬЗОВАТЕЛЯ/packages/ИМЯ_ПАКЕТА
Копировать УР в ЛР
git clone git.alt:packages/ИМЯ_ПАКЕТА
Копировать ЧР в ЛР
git clone url_чужова_репозитоия
Базовые операции c ЛР
Добавление списка файлов в комит:
git add file1 file2 ... fileN
Добавление всех недобавленных файлов в комит: git add -a
Удаление файла из комита и с жесткого диска:
git rm file1 file2 ... fileN
Комит в локальный репозиторий (надо отметить, что в таком случае закомитятся только файлы, которые были обработаны с помощью git add/rm):
git commit
Комит всех изменений в локальный репозиторий:
git commit -a
Отмена всех изменений, сделанных в дереве, до состояния, которое было при последнем комите в локальный репозиторий( очень опасная команда, подумайте прежде чем пользоваться ею):
git reset --hard
Создание файла различий относительно последнего комита:
git diff
Сборка пакета в Сизиф
Создаём подписанный тэг:
$ gear-create-tag запрос подписи имя_тэга будет равно версии пакета
$ git push origin --tags записываем себе в ЛР
Отправляем пакет на сборку в Сизиф:
$ ssh git.alt build packages/ИМЯ_пакета.git имя_тега
имя_тэга равно версии пакета
Импорт пакета из СР
git clone http://git.altlinux.org/gears/h/hello.git
Удаляем из
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
Url = git://git.altlinux.org/gears/h/hello.git
Задаём свой ЛР
git remote add origin git.alt:packages/hello.git