Пример работы с Git. Опубликовано из справки по курсу "Технологии программирования". # ПроВеряем работоспособность git [sin@base ~]$ git --version git version 1.5.6.5.GIT # Входим каталог проекта или создём его [sin@base ~]$ mkdir test_project [sin@base ~]$ cd test_project # Инициализируем репозитарий [sin@base test_project]$ git init Initialized empty Git repository in /home/sin/tst/.git/ # Добавляем файлы, выполняем первый коммит [sin@base test_project]$ git add file.cpp [sin@base test_project]$ git commit -a Пример генерации SSH-ключей: # Генерация ключей с помощью консольной утилиты [sin@base ~]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/c/Documents and Settings/sin/.ssh/id_rsa): Created directory '/c/Documents and Settings/sin/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Documents and Settings/sin/.ssh/id_rsa. Your public key has been saved in /c/Documents and Settings/sin/.ssh/id_rsa.pub. The key fingerprint is: c6:46:d2:d4:3c:c8:ce:ca:db:10:cd:45:63:dc:8b:0e sin@W12-418-10 # Теперь для регистрации на сервере git.toiit.sgu.ru достаточно: # 1) скопировать и сохранить ключи (файлы id_rsa и id_rsa.pub, которые были созданы в каталоге .ssh); # 2) отправить три основных параметра регистрации: # * Публичный ключ (файл id_rsa.pub); # * Предполагаемый логин (свободное имя пользователя) ; # * Имя Фамилия латинским символами, например "Evgeny Sinelnikov"; # Параметры регистрации необходимо отправлять администраторам сервера. Пример создания файла конфигурации: # Создание псевдонима имени сервера в домашнем каталоге, # где USERNAME - имя пользователя. [sin@base ~]$ cat > ~/.ssh/config Host git.toi HostName git.toiit.sgu.ru User git_USERNAME Пример создания создания удалённого репозитория на сервере git.toiit.sgu.ru: # Проверяем наличие ssh-ключей (требуется, как аутентификационная информация # для удалённого подключения) - должны быть в файлах id_rsa* или id_dsa* [sin@base ~]$ ls ~/.ssh/id_* /home/sin/.ssh/id_dsa /home/sin/.ssh/id_dsa.pub /home/sin/.ssh/id_rsa /home/sin/.ssh/id_rsa.pub # Проверяем файл конфигурации [sin@base ~]$ cat ~/.ssh/config Host git.toi HostName git.toiit.sgu.ru User git_USERNAME # Проверяем доступ к серверу [sin@base ~]$ ssh git.toi Enter passphrase for key '/home/sin/.ssh/id_dsa': ssh: PTY allocation request failed on channel 0 -girar-sh: Not enough arguments. -girar-sh: Try `help' command for more information. Connection to git.toiit.sgu.ru closed. [sin@base ~]$ ssh git.toi help Enter passphrase for key '/home/sin/.ssh/id_dsa': Available commands: help charset <path to git repository> [<charset>] clone <path to git repository> [<path to directory>] config-db <path to directory> <config> [<value>] default-branch <path to git repository> [<branch>] find-package <pattern> init-db <path to directory> ls [<path to directory>] mv-db <path to source directory> <path to destination directory> quota repack <path to git repository> [<value>] rm-db <path to git repository> task {--help|ls|show|new|add|delsub|run|share|approve|rm|genbases} ... build [-b <binary_repository_name>] <gear_repo_1> <gear_tag_1> ... genbases [-b <binary_repository_name>] pocket--help|create|delete|show|list| ... acl {--help|<binary_repository_name> ...} # Добавляем ключи в ssh-agent, чтобы не повторять ввод пароля # в течении сессии клиента: [sin@base ~]$ ssh-add Enter passphrase for /home/sin/.ssh/id_rsa: Identity added: /home/sin/.ssh/id_rsa (/home/sin/.ssh/id_rsa) Enter passphrase for /home/sin/.ssh/id_dsa: Identity added: /home/sin/.ssh/id_dsa (/home/sin/.ssh/id_dsa) # В случае, если у вас не запущен ssh агент, может быть выдана ошибка: [sin@base ~]$ ssh-add Could not open a connection to your authentication agent. # Для использования ssh агента нужно запустить утилиту ssh-agent. # Если отказаться от использования ssh агента, ЫЫ # Создаём на сервере удлаённый репозиторий (команда init-db) к серверу: [sin@base ~]$ ssh git.toi init-db public/test girar-init-db: /people/sin/public/test.git # Проверяем, созданный на сервере, удлаённый репозиторий (команда ls) к серверу: [sin@base ~]$ ssh git.toi ls public/test.git total 12 -rw-r--r-- 1 23 Dec 8 19:50 HEAD -rw-r--r-- 1 66 Dec 8 19:50 config -rw-r--r-- 1 12 Dec 8 19:50 description -rw------- 1 0 Dec 8 19:50 git-daemon-export-ok lrwxrwxrwx 1 22 Dec 8 19:50 hooks -> /usr/share/girar/hooks drwxr-sr-x 4 28 Dec 8 19:50 objects drwxr-sr-x 4 29 Dec 8 19:50 refs # Полный путь доступен также через web-интерфейс: # http://git.toiit.sgu.ru/people/USERNAME/public/test.git [sin@base ~]$ ssh git.toi ls /people/sin/public/test.git total 12 -rw-r--r-- 1 23 Dec 8 19:50 HEAD -rw-r--r-- 1 66 Dec 8 19:50 config -rw-r--r-- 1 12 Dec 8 19:50 description -rw------- 1 0 Dec 8 19:50 git-daemon-export-ok lrwxrwxrwx 1 22 Dec 8 19:50 hooks -> /usr/share/girar/hooks drwxr-sr-x 4 28 Dec 8 19:50 objects drwxr-sr-x 4 29 Dec 8 19:50 refs # Список публичных репозиториев # доступен также через web-интерфейс: # http://git.toiit.sgu.ru/people/sin/public/ [sin@base ~]$ ssh git.toi ls /people/sin/public/ total 0 drwxr-sr-x 5 146 Sep 12 17:12 qkicker.git drwxr-sr-x 5 146 Apr 25 2009 simple-mmc.git drwxr-sr-x 5 146 Jun 3 2009 supertask3.git drwxr-sr-x 4 112 Dec 8 19:50 test.git drwxr-sr-x 5 146 Nov 19 20:21 toiit.git Пример публикации проекта на удалённом репозитории: # Для публикации нужно указать имя удалённого репозитория: # - git_sin@git.toiit.sgu.ru:public/test # - git.toi:public/test # - toi # второй вариант будет иметь смысл при указании псевдонима # в файле конфигурации ~/.ssh/config # третий вариант будет иметь если, если для задать псевдоним # удалённого репозитория следующим образом: [sin@base test_project]$ git remote add toi git.toi:public/test # Команда для публикации на удалённом репозитории toi ветки master [sin@base test_project]$ git push toi master Counting objects: 3, done. Writing objects: 100% (3/3), 208 bytes, done. Total 3 (delta 0), reused 0 (delta 0) Repacking repository... done Updating committer date cache... done To git.toi:public/test * [new branch] master -> master |
Материалы >