С отправкой без ssh (например на git.eter git.alt) всё проще, а вот с ssh есть маленькие тонкости.
Например: http://git.toiit.sgu.ru
Конкретно я: http://git.toiit.sgu.ru/people/rainbow/
Там же есть такие папки как public, private,packages
В локальном репозитории работа с помощью команд git а взаимодействие с репозиторием на сервере через
fit push, pull (fetch+merge)
Итак, для начала посмотрим на ~/.ssh/config
[katya@rainbow .ssh]$ cat ~/.ssh/config
Host git.eter
HostName git.etersoft.ru
User git_rainbow
Host git.alt
HostName git.altlinux.org
Port 222
User git_rainbow
Host git.toi
HostName git.toiit.sgu.ru
Здесь перечислены несколько разных git серверов.Будем использовать git.toi
Необходимо также наличие сгенерированного ssh ключа. Как его генерировать и зачем он нужен, это
другая история. Пока же необходимо знать, что он нужен для отправки зашифрованных данных по алгоритму rsa.
Шифруется в одну сторону закрытой частью ключа (private key) и в другую - открытой (public key). Необходимые файлы
называются id_dsa.pub,
Эти ключики надо бережно хранить. Чревато противоположное тем, что вы не сможете зайти в свой аккаунт на сервере или кто-то
несанкционированно будет править вашими проектами. Желательно хранить их копию еще где-нибудь на случай внезапного падения дистрибутива.
Далее, также понадобится файл ~/.gitconfig
[katya@rainbow .ssh]$ cat ~/.gitconfig
[user]
name = Polyakova Ekaterina
email = rainbow@altlinux.ru
(Для git.toi не критично email)
Наконец, сама работа.
$git init
$git add . //добавить все что ниже либо явно git add test.c test1.c и т.д.
$git commit -a -m 'Initial commit'
Репозиторий готов, теперь его надо отправить.
Вот перечень возможных команд.
$ ssh git.toi help
Available commands:
help
git-receive-pack
git-upload-pack
charset
clone
find-package
init-db
ls [
mv-db
quota
rm-db
task {--help|ls|show|new|add|delsub|run|share|approve|rm} ...
build [-b
acl {--help|
Если не создан ни один репозиторий на сервере, создадим, например здесь:
$ ssh git.toi init-db test
girar-init-db: /people/rainbow/packages/test.git
Либо если создан (public/task3.git) делаем команду:
$git remote add toi git.toi:packages/test.git
Затем нужно выполнить git push - залить на сервер наши изменения.
$git push toi --all
Enter passphrase for key '/home/katya/.ssh/id_dsa':
Counting objects: 8, done.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 3.25 KiB, done.
Total 8 (delta 0), reused 3 (delta 0)
To git.toi:public/task3.git
* [new branch] master -> master
Repacking repository... done
Опция --all отправит все ветки. Если нужно конкретную, пишем git push toi master например.
Если обновился репозиторий, нужно обновить локальный репозиторий командой git pull (fetch + merge)
Готово. :)
Ссылки на руководства git:
Git - Fast Version Control System -http://git-scm.com/
Git - ALT Linux Wiki
FreeSource : Ruslan Hihin / Git User Manual - http://freesource.info/wiki/RuslanHihin/gitusermanual
Админодевелопмент: Практическое введение в Git - http://admdev.blogspot.com/2009/02/git.html
Андрей Таранцов: Всё, что нужно знать про Git - http://blog.tarantsov.com/2008/11/essential-git.html
intro-to-git.pdf (объект «application/pdf») - http://edgyu.excess.org/git-tutorial/2008-07-09/intro-to-git.pdf (неплохая понятная презентация на англ.яз.)
gitorious.org - хранилище git проектов
Комментариев нет:
Отправить комментарий