Практическая работа 7. Настройки доступа к репозиторию
Скачать 21.92 Kb.
|
Практическая работа 7 Тема: Настройки доступа к репозиторию. Целью работы является получение практических навыков ра- боты с депозитарием проекта Github. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ Git – распределѐнная система управления версиями. Проект был создан для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года. GitHub – крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки. Среди проектов, использующих Git – ядро Linux, Swift, Android, Drupal, Cairo, GNU Core Utilities, Mesa, Wine, Chromium, Compiz Fusion, FlightGear, jQuery, PHP, NASM, MediaWiki, DokuWiki, Qt, ряд дистрибутивов Linux. Программа является свободной и выпущена под лицензией GNU GPL версии 2. По умолчанию используется TCP порт 9418. Ядро Git представляет собой набор утилит командной строки с параметрами. Все настройки хранятся в текстовых файлах конфигурации. Такая реализация делает Git легко портируемым на любую платформу и даѐт возможность легко интегрировать Git в другие системы (в частности, создавать графические git-клиенты с любым желаемым интерфейсом). Репозиторий Git представляет собой каталог файловой системы, в котором находятся файлы конфигурации репозитория, файлы журналов, хранящие операции, выполняемые над репозиторием, индекс, описывающий расположение файлов, и хранилище, содержащее собственно файлы. Структура хранилища файлов не отражает реальную структуру хранящегося в репозитории файлового дерева, она ориентирована на повышение скорости выполнения операций с репозиторием. Когда ядро обрабатывает команду изменения (неважно, при локальных изменениях или при получении патча от другого узла), оно создаѐт в хранилище новые файлы, соответствующие новым состояниям изменѐнных файлов. Существенно, что никакие операции не изменяют содержимого уже существующих в хранилище файлов. По умолчанию репозиторий хранится в подкаталоге с названием «.git» в корневом каталоге рабочей копии дерева файлов, хранящегося в репозитории. Любое файловое дерево в системе можно превратить в репозиторий git, отдав команду создания репозитория из корневого каталога этого дерева (или указав корневой каталог в параметрах программы). Репозиторий может быть импортирован с другого узла, доступного по сети. При импорте нового репозитория автоматически создаѐтся рабочая копия, соответствующая последнему зафиксированному состоянию импортируемого репозитория (то есть не копируются изменения в рабочей копии исходного узла, для которых на том узле не была выполнена команда commit). В первую очередь надо установить клиент git: обязательно потребуется консольный клиент, доступный по ссылке http://git- scm.com/downloads (поддерживаются основные ОС), графический кли ент можно установить по желанию, исходя из своих предпочтений. Далее работа с git будет объясняться на примере работы с консольным клиентом по следующим причинам: Чтобы складывалось понимание происходящего и при возникновении проблем вы могли четко объяснить, что вы делали, и было видно, что пошло не так. Все нажатия кнопок в графических клиентах в итоге сводят к выполнению определѐнных команд консольного клиента, в то же время возможности графических клиентов ограничены по сравнению с консольным У тех, кто будет работать в классе на стоящих там компьютерах, не будет другого выбора, кроме как пользоваться консольным клиентом (на сколько мне известно, никаких графических клиентов для git там не установлено) Аккаунтирепозиториинаgithub.com.Для того что бы использовать web-сервис репозитория необходимо зарегистрироваться на https://github.com/. После чего можно будет создавать свои репозитории или присоединиться к работе над проектами коллег, сделав копию (fork) другого репозитория. Вам предлагается начать с создания fork-а к заведенному репозиторию https://github.com/andreiled/mipt-cs-4sem. Создание локального репозитория, связанного с удаленнымрепозиторием. Следующим шагом после создания репозитория на github, называемого далее удаленным репозиторием, является создание локальной копии этого репозитория на своем компьютере. Особенностью git является наличие на локальном компьютере полной копии репозитория со всей информацией об истории изменений. Воспользовавшись командой git status можно узнать, на какой ветке (branch) репозитория вы сейчас находитесь, какие изменения присутствуют в вашей рабочей копии и другую информацию. Рабочей копией называется совокупность файлов в локальнойпапкерепозиториязаисключениемслужебныхфайлов. После внесения каких-либо изменений в рабочую копию их можно «закоммитить» в локальный репозиторий: сначала нужная часть изменений подготавливается к коммиту с использованием команды git add %file_path% после чего производится коммит командой git commit Использование команды без аргументов откроет текстовый редактор, где надо будет написать комментарий для коммита, коммит обязательно должен иметь комментарий. Историю изменений можно посмотреть командой git log или git log --name-only. Если вся история изменений не умещается на экране, то можно пользоваться клавишами прокрутки на клавиатуре («стрелочки», PgUp, PgDown), выход из режима просмотра изменений осуществляется нажатием клавиши «q». Загрузка локальных изменений в удаленный репозиторий. После того, как были выполнены нужные локальные коммиты, изме- нения можно загрузить в удаленный репозиторий с помощью ко- манды git push origin master. GIT клиент при этом запросит имя пользователя и пароль для доступа к github. Выполнение этой команды может закончиться с ошибкой, если в локально репозитории отсутствуют последние изменения, имею- щиеся в удаленном репозитории. Для решения этой проблемы надо выполнить команду git pull, которая скачает последние изменения из удаленного репозитория и смержит их с вашими локальными правками, после чего можно повторить команду git push. ПОРЯДОК ВЫПОЛНЕНИЯ И ЗАДАНИЕ ДЛЯ РАБОТЫ Зарегистрируйтесь на сервисе https://github.com/. Создайте локальный репозитарий, связанный с заданным глобальным репозитарием. Настройте параметры доступа к локальному репозитарию. Выполните загрузку изменений выполненных в локальном репозитарии в глобальный репозитарий. КОНТРОЛЬНЫЕ ВОПРОСЫ Какие функции выполняет система контроля версиями? Что такое локальный депозитарий? Какие функции выполняет сервис GitHub? Какие действия нужно выполнить для получения доступа к функционалу GitHub? |