Code Monkey home page Code Monkey logo

intro-to-git-and-github's Introduction

Введение в систему контроля версий Git и систему для совместной разработки GitHub

На проработку материала и выполнение заданий у вас есть 2 недели.

О контроле версий

Что такое контроль версий, и зачем он вам нужен? Система контроля версий — это система, регистрирующая изменения в одном или нескольких файлах с тем, чтобы в дальнейшем была возможность вернуться к определённым старым версиям этих файлов. Чаще всего в системах контроля версий хранятся исходные коды программ, но на самом деле под версионный контроль можно поместить файлы практически любого типа.

Система контроля версий даёт возможность возвращать отдельные файлы к прежнему виду, возвращать к прежнему состоянию весь проект, просматривать происходящие со временем изменения, определять, кто последним вносил изменения во внезапно переставший работать модуль, кто и когда внёс в код какую-то ошибку, и многое другое. Вообще, если, пользуясь системой контроля версий, вы всё испортите или потеряете файлы, всё можно будет легко восстановить. Вдобавок, накладные расходы за всё, что вы получаете, будут очень маленькими.

Git

Git (произносится «гит») — распределённая система контроля версий. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года. Основные требования к новой системе были следующими:

  • Скорость
  • Простота дизайна
  • Поддержка нелинейной разработки (тысячи параллельных веток)
  • Полная распределённость
  • Возможность эффективной работы с такими большими проектами, как ядро Linux (как по скорости, так и по размеру данных)

С момента рождения Git развивался и эволюционировал, становясь проще и удобнее в использовании, сохраняя при этом свои первоначальные качества. Он невероятно быстр, очень эффективен для больших проектов, а также обладает превосходной системой ветвления для нелинейной разработки

GitHub

GitHub (произносится «гитхаб») — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки. Основан на системе контроля версий Git и разработан на Ruby on Rails и Erlang. Сервис абсолютно бесплатен для проектов с открытым исходным кодом и предоставляет им все возможности (включая SSL), а для частных проектов предлагаются различные платные тарифные планы.

Создатели сайта называют GitHub «социальной сетью для разработчиков». Кроме размещения кода, участники могут общаться, комментировать правки друг друга, а также следить за новостями знакомых. С помощью широких возможностей Git программисты могут объединять свои репозитории — GitHub предлагает удобный интерфейс для этого и может отображать вклад каждого участника в виде дерева.

Первый частный репозиторий был создан 12 января 2008. К концу 2011 года в проекте уже было зарегистрировано более миллиона пользователей и более двух миллионов репозиториев. По состоянию на март 2017 года на сайте существовало более 58 миллионов репозиториев.

Интересные факты про Git и GitHub

Этот раздел будет дополняться студентами в процессе выполнения заданий

  • Автор Git, Линус Торвальдс, со своей командой при работе над ядром Linux бесплатно использовали коммерческую распределённую систему контроля версий BitKeeper. В 2005 году отношения между сообществом разработчиков ядра и компанией, разрабатывавшей BitKeeper, испортились, и право бесплатного пользования продуктом было отменено. Это и подтолкнуло разработчиков Linux разработать собственную систему, основываясь на опыте, полученном за время использования BitKeeper. Так и появился на свет Git.

  • К марту 2017 года на сайте существовало более 58 миллионов репозиториев, в том числе официальные репозитории многих IT-компаний (Facebook, Twitter, Google и др.).

  • GitHub можно назвать великим эквалайзером. У вас может не быть возможности получить работу в Австралии из Индии, но ничто не мешает вам работать с австралийцами из Индии с помощью GitHub.

  • Около двух третей сотрудников GitHub работают удаленно.

Горячие клавиши GitHub

  • Если нажать t при просмотре репозитория, появится строка поиска файлов, в которую можно ввести часть пути и выбрать необходимый файл, сэкономив минуты блуждания по репозиторию в поисках.
  • Нажмите l при просмотре файла — появится маленькое окно для ввода номера строки.
  • Быстрые переходы к разделам Github: они начинаются с префикса g (go), и следующая за ним буква указывает на место назначения. g+p — переход к списку пулл-реквестов, g+i — список issues, g+n — страница нотификаций и т.д.

Задания для самостоятельной работы

  1. Установить Git на компьютер, используя помощь из разделов 1.4 и 1.5 книги «Pro Git» (https://git-scm.com/book/ru/v1)
  2. Прочитать раздел 2 книги «Pro Git» (https://git-scm.com/book/ru/v1)
  3. Выполнить задания интерактивного урока «Try Git» (https://try.github.io)
  4. Добавить в этот репозиторий новый файл, в котором разместить исходный текст программы на выбранном вами языке программирования, которая выводит на экран надпись Hello, World!.
  5. Создать дополнительную ветку refactoring, в которой надпись заменена на текущую дату.
  6. В основной ветке master заменить надпись Hello, World! на надпись Hello, User!.
  7. Выполнить слияние ветки refactoring в ветку master. При слиянии заменить вывод на строчку Hello, User! Today is {ТЕКУЩАЯ ДАТА}.
  8. Удалить ветку refactoring.
  9. Добавить в репозиторий задачу (Issue), в которой указать необходимость добавить в программу комментарий о появлении вывода текущей даты.
  10. Посмотреть через терминал историю изменений файла. Определить SHA-1 хеш коммита, в котором в программу в дополнительной ветке был добавлен вывод текущей даты.
  11. Найти в справочном сайте GitHub (https://help.github.com) форматы инструкций, которая будучи добавлена в описание коммита позволяет управлять состоянием задач.
  12. Добавить в программу комментарий с 7-значной версией хеша соответствующего коммита. При добавлении коммита с комментарием в репозиторий, добавить в описание коммита специальную инструкцию, которая позволит автоматически пометить созданную ранее задачу как выполненную.
  13. В случае ошибки выполнить шаги 9–12 заново. Успешным выполнением считается задача, которая была создана вручную, а закрыта с помощью специальным образом оформленного описания коммита.
  14. Найти интересный для себя факт о системе контроля версий Git или сервисе GitHub и добавить его в репозиторий https://github.com/storkvist/Intro-to-Git-and-GitHub в раздел «Интересные факты о Git и GitHub» с помощью пулл-реквеста.

Источники информации

  1. Электронная книга «Pro Git» (по-русски) — https://git-scm.com/book/ru/v1
  2. Справочный сайт сервиса GitHub (по-английски) — https://help.github.com

intro-to-git-and-github's People

Contributors

ibojik avatar listton avatar polnazarova avatar undefeatedsando avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.