На проработку материала и выполнение заданий у вас есть 2 недели.
Что такое контроль версий, и зачем он вам нужен? Система контроля версий — это система, регистрирующая изменения в одном или нескольких файлах с тем, чтобы в дальнейшем была возможность вернуться к определённым старым версиям этих файлов. Чаще всего в системах контроля версий хранятся исходные коды программ, но на самом деле под версионный контроль можно поместить файлы практически любого типа.
Система контроля версий даёт возможность возвращать отдельные файлы к прежнему виду, возвращать к прежнему состоянию весь проект, просматривать происходящие со временем изменения, определять, кто последним вносил изменения во внезапно переставший работать модуль, кто и когда внёс в код какую-то ошибку, и многое другое. Вообще, если, пользуясь системой контроля версий, вы всё испортите или потеряете файлы, всё можно будет легко восстановить. Вдобавок, накладные расходы за всё, что вы получаете, будут очень маленькими.
Git (произносится «гит») — распределённая система контроля версий. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года. Основные требования к новой системе были следующими:
- Скорость
- Простота дизайна
- Поддержка нелинейной разработки (тысячи параллельных веток)
- Полная распределённость
- Возможность эффективной работы с такими большими проектами, как ядро Linux (как по скорости, так и по размеру данных)
С момента рождения Git развивался и эволюционировал, становясь проще и удобнее в использовании, сохраняя при этом свои первоначальные качества. Он невероятно быстр, очень эффективен для больших проектов, а также обладает превосходной системой ветвления для нелинейной разработки
GitHub (произносится «гитхаб») — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки. Основан на системе контроля версий Git и разработан на Ruby on Rails и Erlang. Сервис абсолютно бесплатен для проектов с открытым исходным кодом и предоставляет им все возможности (включая SSL), а для частных проектов предлагаются различные платные тарифные планы.
Создатели сайта называют GitHub «социальной сетью для разработчиков». Кроме размещения кода, участники могут общаться, комментировать правки друг друга, а также следить за новостями знакомых. С помощью широких возможностей Git программисты могут объединять свои репозитории — GitHub предлагает удобный интерфейс для этого и может отображать вклад каждого участника в виде дерева.
Первый частный репозиторий был создан 12 января 2008. К концу 2011 года в проекте уже было зарегистрировано более миллиона пользователей и более двух миллионов репозиториев. По состоянию на март 2017 года на сайте существовало более 58 миллионов репозиториев.
Этот раздел будет дополняться студентами в процессе выполнения заданий
-
Автор Git, Линус Торвальдс, со своей командой при работе над ядром Linux бесплатно использовали коммерческую распределённую систему контроля версий BitKeeper. В 2005 году отношения между сообществом разработчиков ядра и компанией, разрабатывавшей BitKeeper, испортились, и право бесплатного пользования продуктом было отменено. Это и подтолкнуло разработчиков Linux разработать собственную систему, основываясь на опыте, полученном за время использования BitKeeper. Так и появился на свет Git.
-
К марту 2017 года на сайте существовало более 58 миллионов репозиториев, в том числе официальные репозитории многих IT-компаний (Facebook, Twitter, Google и др.).
-
GitHub можно назвать великим эквалайзером. У вас может не быть возможности получить работу в Австралии из Индии, но ничто не мешает вам работать с австралийцами из Индии с помощью GitHub.
-
Около двух третей сотрудников GitHub работают удаленно.
-
Помимо структуры папок и файлов, самым заметным элементом в любом репозитории является файл README. Если его нет, то страница выглядит странно. Каждый обязан добавить README в свой репозиторий.
- Если нажать t при просмотре репозитория, появится строка поиска файлов, в которую можно ввести часть пути и выбрать необходимый файл, сэкономив минуты блуждания по репозиторию в поисках.
- Нажмите l при просмотре файла — появится маленькое окно для ввода номера строки.
- Быстрые переходы к разделам Github: они начинаются с префикса g (go), и следующая за ним буква указывает на место назначения. g+p — переход к списку пулл-реквестов, g+i — список issues, g+n — страница нотификаций и т.д.
- Установить Git на компьютер, используя помощь из разделов 1.4 и 1.5 книги «Pro Git» (https://git-scm.com/book/ru/v1)
- Прочитать раздел 2 книги «Pro Git» (https://git-scm.com/book/ru/v1)
- Выполнить задания интерактивного урока «Try Git» (https://try.github.io)
- Добавить в этот репозиторий новый файл, в котором разместить исходный текст программы на выбранном вами языке программирования, которая выводит на экран надпись
Hello, World!
. - Создать дополнительную ветку
refactoring
, в которой надпись заменена на текущую дату. - В основной ветке
master
заменить надписьHello, World!
на надписьHello, User!
. - Выполнить слияние ветки
refactoring
в веткуmaster
. При слиянии заменить вывод на строчкуHello, User! Today is {ТЕКУЩАЯ ДАТА}
. - Удалить ветку
refactoring
. - Добавить в репозиторий задачу (Issue), в которой указать необходимость добавить в программу комментарий о появлении вывода текущей даты.
- Посмотреть через терминал историю изменений файла. Определить SHA-1 хеш коммита, в котором в программу в дополнительной ветке был добавлен вывод текущей даты.
- Найти в справочном сайте GitHub (https://help.github.com) форматы инструкций, которая будучи добавлена в описание коммита позволяет управлять состоянием задач.
- Добавить в программу комментарий с 7-значной версией хеша соответствующего коммита. При добавлении коммита с комментарием в репозиторий, добавить в описание коммита специальную инструкцию, которая позволит автоматически пометить созданную ранее задачу как выполненную.
- В случае ошибки выполнить шаги 9–12 заново. Успешным выполнением считается задача, которая была создана вручную, а закрыта с помощью специальным образом оформленного описания коммита.
- Найти интересный для себя факт о системе контроля версий Git или сервисе GitHub и добавить его в репозиторий https://github.com/storkvist/Intro-to-Git-and-GitHub в раздел «Интересные факты о Git и GitHub» с помощью пулл-реквеста.
- Электронная книга «Pro Git» (по-русски) — https://git-scm.com/book/ru/v1
- Справочный сайт сервиса GitHub (по-английски) — https://help.github.com