Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Программирование – 1 курс осень 2021 – 3.2 занятие

F21d69109b1c03921abf7d12f0fb6654?s=47 ТиМПИ
September 24, 2021

Программирование – 1 курс осень 2021 – 3.2 занятие

F21d69109b1c03921abf7d12f0fb6654?s=128

ТиМПИ

September 24, 2021
Tweet

Transcript

  1. 24 сентября 2021 vdo@dscs.pro Олисеенко Валерий Дмитриевич Ассистент кафедры информатики

    Контроль версий. Введение в GitHub.
  2. 2/44 2/44 Описание проблемы Пример последовательной работы Пример параллельной работы

    Наглядно про проблемы тут …
  3. 3/44 3/44 Локальная система контроля версий Источник: http://git-scm.com/book/ru/v2/Введение-О-системе-контроля-версий

  4. 4/44 4/44 Централизованная системы контроля версий Источник: http://git-scm.com/book/ru/v2/Введение-О-системе-контроля-версий

  5. 5/44 5/44 Распределенная система контроля версий Источник: http://git-scm.com/book/ru/v2/Введение-О-системе-контроля-версий

  6. 6/44 6/44 История систем контроля версий Источник: https://habr.com/ru/post/478752/

  7. 7/44 7/44 Введение в GIT Система git разработана Линусом Торвальдсом

    в 2005 году Имеет: • Высокую скорость • Простую архитектуру • Хорошую поддержка нелинейной разработки • Полную децентрализацию • Возможность управления большими проектами git for windows
  8. 8/44 8/44 Хранение файлов в Git (1/2) Источник: http://git-scm.com/book/ru/v2/Введение-Что-такое-Git%3F Контроль

    версий, основанный на различиях
  9. 9/44 9/44 Хранение файлов в Git (2/2) Источник: http://git-scm.com/book/ru/v2/Введение-Что-такое-Git%3F Хранение

    данных как снимков проекта во времени
  10. 10/44 10/44 Ключевые слова в Git Репозиторий Git — набор

    файлов конфигурации, журналов операций, выполняемых над репозиторием, индекс расположения файлов и сами файлы с кодом Локальный репозиторий — репозиторий Git, расположенный на локальном компьютере Удалённый репозиторий — репозиторий Git, находящийся на удалённом сервере. Форк (англ. Fork) — копия репозитория. Пулл (англ. Pull) — получение последних изменений с удалённого сервера репозитория. Пуш (англ. Push) — отправка всех неотправленных коммитов на удалённый сервер репозитория. Пулл-реквест (англ. Pull request) — запрос на внесения своих изменений в основной (удалённый репозиторий). Кодревью — процесс проверки кода на соответствие стандартом, отсутствие ошибок и внешнему виду. Мёрдж (англ. Merge) — слияние разных версий кода (веток). Мастер (Master) — главная ветка репозитория. Ветка (Branch) —параллельная версия репозитория. Коммит (Commit) — фиксация изменений или запись изменений в репозиторий.
  11. 11/44 11/44 Запись изменений файлов в Git (1/2)

  12. 12/44 12/44 Запись изменений файлов в Git (1/2) Источник: http://git-scm.com/book/ru/v2/Основы-Git-Запись-изменений-в-репозиторий

  13. 13/44 13/44 Изменения файла в Git. Проще… Источник: http://git-scm.com/book/ru/v2/Введение-Что-такое-Git%3F

  14. 14/44 14/44 Ещё факты о Git… Источник: http://git-scm.com/book/ru/v2/Основы-Git-Запись-изменений-в-репозиторий • Почти

    все операции выполняются локально. • Целостность Git — сравнение в хэше SHA-1. • Git обычно только добавляет данные. Зашифрованное число: 012 SHA-1: c4a2d99bc28d236098a095277b7eb0718d6be068
  15. 15/44 15/44 Git for Windows git for windows

  16. 16/44 16/44 Установка Git for Windows

  17. 17/44 17/44 Начало работы с консолью Минимальный набор команд для

    работы с Git Bash: • cd <путь> — смена директории • cd .. — смена директории вверх (двоеточие с пробелом) • ls — список файлов и папок в текущей директории • pwd — полный текущий путь директории • mkdir — создание директории • сtrl + L — очистка экрана • tab — автозаполнение команды в консоли • Стрелки ↑/↓ — выбор введённых ранее команд
  18. 18/44 18/44 Начало работы с Git Локальный каталог Создание проекта

    в Git Клонирование (Форк) каталога
  19. 19/44 19/44 Индексация изменённых файлов Изменяем файл и делаем git

    status Для коммита: git commit
  20. 20/44 20/44 Просмотр изменений Разница проиндексированного и не проиндексированного файла

  21. 21/44 21/44 Основные команды Git • git add <название> —

    индексация нового файла в Git или добавление его к коммиту. • git diff — список изменений по каждому файлу. • git status — список изменённых/добавленных/удалённых файлов. • git commit — создать новый коммит. • git rm — удалить файл в Git и в каталоге. • git log—список коммитов. • git checkout <название> — откатить изменения в файле или перейти на другую ветку. • git help <название> — получить справку по команде.
  22. 22/44 22/44 Ветвление (1/2) Коммит и его дерево Источник: http://git-scm.com/book/ru/v2/Ветвление-в-Git-О-ветвлении-в-двух-словах

    $ git add *.cpp $ git add LICENSE $ git commit -m 'Initial project version'
  23. 23/44 23/44 Ветвление (2/2) Коммит и его родители Источник: http://git-scm.com/book/ru/v2/Ветвление-в-Git-О-ветвлении-в-двух-словах

  24. 24/44 24/44 Создание новой ветки Источник: http://git-scm.com/book/ru/v2/Ветвление-в-Git-О-ветвлении-в-двух-словах Создание ветки: git

    branch <название>
  25. 25/44 25/44 Переключение между ветками Источник: http://git-scm.com/book/ru/v2/Ветвление-в-Git-О-ветвлении-в-двух-словах Переход по веткам:

    git checkout <название> Проверка указателей веток: git log --decorate
  26. 26/44 26/44 Пример: ветки (1/3) Источник: http://git-scm.com/book/ru/v2/Ветвление-в-Git-О-ветвлении-в-двух-словах Коммит на ветке

    «testing»
  27. 27/44 27/44 Пример: ветки (2/3) Источник: http://git-scm.com/book/ru/v2/Ветвление-в-Git-О-ветвлении-в-двух-словах Переключение веток: git

    checkout master
  28. 28/44 28/44 Пример: ветки (3/3) Источник: http://git-scm.com/book/ru/v2/Ветвление-в-Git-О-ветвлении-в-двух-словах Коммит на ветке

    «master». Вывод всего графа коммитов git: log --oneline --decorate --graph --all
  29. 29/44 29/44 Трёхстороннее слияние веток (1/2) Источник: http://git-scm.com/book/ru/v2/Ветвление-в-Git-Основы-ветвления-и-слияния Объединение веток:

    git merge <имя ветки>
  30. 30/44 30/44 Трёхстороннее слияние веток (2/2) Источник: http://git-scm.com/book/ru/v2/Ветвление-в-Git-Основы-ветвления-и-слияния

  31. 31/44 31/44 Конфликты Источник: http://git-scm.com/book/ru/v2/Ветвление-в-Git-Основы-ветвления-и-слияния Сообщение конфликта Изменения в файле

  32. 32/44 32/44 Процесс работы в команде • Программист хочет добавить

    новый функционал. • Создаёт себе ветку от master’a • Реализует функционал. • Тестирует и рефакторит код. • Делает пулл-реквест. • Пулл-реквест ревьюят, программист переключается на другую задачу. • Если к коду появляются замечания, программист переключается на ветку пулл-реквеста и правит там замечания. • После исправления, коммитит и пушит (для добавления в пулл-реквест). • Переключается обратно на свою рабочую ветку и продолжает писать код. • Цикл повторяется до тех пор, пока пулл-реквест не принимают.
  33. 33/44 33/44 Полезные ресурсы • Git for Windows: https://gitforwindows.org/ •

    Официальный гайд: https://git-scm.com/book/ru/v2 • Комикс-гайд: https://habr.com/ru/post/552872/ • Ещё гайд: https://javarush.ru/groups/posts/2683-nachalo-rabotih-s-git- podrobnihy-gayd-dlja-novichkov • Задачки по Git: https://githowto.com/ • Игра: https://learngitbranching.js.org/?locale=ru_RU
  34. 34/44 34/44 Введение в Github • Аудитория на 2020 год

    — 56 млн. человек. • Ежегодно: 40 + млн. репозиториев и 1.9 млрд. коммитов. • Большинство IT компаний просят Github при трудоустройстве. • Удобная система пулл-реквестов и обсуждений. • Множество интегрированных сервисов для разработчика. Источник: https://www.opennet.ru/opennews/art.shtml?num=54186
  35. 35/44 35/44 Навигация в Github

  36. 36/44 36/44 Создание репозитория в Github Fork проекта Создание своего

    проекта
  37. 37/44 37/44 Свой репозиторий в Github

  38. 38/44 38/44 Как вести репозиторий в Github?

  39. 39/44 39/44 Создание ветки в Github?

  40. 40/44 40/44 Как отправлять домашки? (1/3) • Создать репозиторий на

    GitHub • Подключиться через SSH к GitHub • Отвести ветку от мастера вашего репозитория: ✔Git checkout master ✔Git branch homework-2 • Создать папку с проектом Visual Studio • Написать код и сделать коммиты: ✔После каждого значимого продвижения ✔git add на каждый новый файл ✔git commit -a –m homework homework “ОПИСАНИЕ”
  41. 41/44 41/44 Как отправлять домашки? (2/3) • Когда задача готова:

    ✔git push -u origin homework-2. • На гитхабе, делаете Pull request ✔Выбираете ветку в «Branch:»; ✔Жмёте на pull request; ✔Вводите описание pull request’a; ✔Жмёте на create pull request; • Ссылку на то, что получилось, выкладываете через форму. • Ожидаете комментариев.
  42. 42/44 42/44 Как отправлять домашки? (3/3) • Коммиты только в

    локальной копии! • Не забывайте делать git checkout «название» при исправлении комментариев. • После того как исправили git push (без –u!). • Когда задача принята, merge pull request на гитхабе и удаляете ветку. Что выкладывать: • .cpp, .h-файлы, .vcxproj, .sln. • Текстовые файлы, нужные для работы программы.
  43. 43/44 43/44 Полезные ресурсы • Гайд на сайте GIT: http://git-scm.com/book/ru/v2/GitHub-Настройка-и-конфигурация-учетной-записи

    • Документация GitHub: https://docs.github.com/en • Cоветы по работе с GitHub: https://habr.com/ru/company/mailru/blog/359246/ • Оформление профиля GitHub: https://techrocks.ru/2020/05/13/make-your-github-profile-helpful-in-finding-job/ • Как оформить Readme: https://techrocks.ru/2019/04/16/good-readme-on-github/ • Полезные фишки GitHub: https://javarush.ru/groups/posts/1820-12-potrjasajujshikh-vozmozhnostey-github • Ещё фишки GitHub: https://howilive.ru/posts/open-source-part-1/ • GitHub по SSH: https://git-scm.com/book/ru/v2/Git-на-сервере-Генерация-открытого-SSH-ключа
  44. 24 сентября 2021 vdo@dscs.pro Олисеенко Валерий Дмитриевич Ассистент кафедры информатики

    Контроль версий. Введение в GitHub.