Похожие презентации:
ДополненнаяРеальность_ПродвинутыйУровень_Занятие1_ЗнакомствоСGIT
1.
Федеральное государственное бюджетное образовательное учреждениевысшего образования «МИРЭА – Российский технологический университет»
Детский технопарк «Альтаир»
Дополненная Реальность
Занятие 1. Работа с GIT
Хвостов Сергей Дмитриевич
Преподаватель Детского технопарка «Альтаир»
2.
Чат группы3.
Как будут проходить занятияВаша активность на занятии важна!
1. На каждом занятии будет выставляться посещение.
2. Ваша работа во время занятия будет оцениваться.
В конце обучения должен быть предоставлен Итоговый Проект.
4.
Продвинутый уровеньПродвинутый уровень 01.12.2025-08.02.2026
Разработка проекта.
Разработка презентации проекта, а также полного текста работы.
Консультации по проекту.
Защита проекта 09.02.2026-22.02.2026
Подготовка к защите в рамках конференции.
5.
Система контроля версийСистема контроля версий (англ. Version Control System, VCS, СКВ) – это ПО,
предназначенное для отслеживания и управления изменениями файлов во времени,
позволяющее сохранять историю модификаций, возвращаться к предыдущим
состояниям, сравнивать изменения между версиями и координировать совместную
работу нескольких разработчиков над общей базой программного проекта.
6.
Характеристики СКВКлючевые характеристики СКВ:
1) версионирование: система сохраняет каждое зафиксированное изменение (коммит)
как отдельную версию, создавая полную историю эволюции проекта;
2) отслеживание изменений: регистрируется информация о том, что было изменено,
кем, когда и по какой причине (через комментарии к коммитам);
7.
Характеристики СКВ3) восстановление: возможность откатиться к любой предыдущей версии файла или
всего проекта;
4)
параллельная
разработка:
поддержка
одновременной
работы
разработчиков через механизмы ветвления (branching) и слияния (merging);
множества
8.
Характеристики СКВ5) разрешение конфликтов: инструменты для обработки ситуаций, когда несколько
разработчиков модифицируют один и тот же фрагмент кода.
9.
Типы СКВНа сегодняшний день существуют следующие СКВ:
− локальные (RCS);
− централизованные (SVN, CVS, Perforce);
− распределённые (Git, Mercurial, Bazaar).
10.
Локальные СКВВсе версии файлов хранятся только на одном компьютере.
Система просто сохраняет разные версии одного и того же файла в специальном
формате (часто в виде различий между версиями — diffs).
Нет понятия "проекта" как единого целого — каждая версия хранится отдельно для
каждого файла.
11.
Локальные СКВ «+»1. Простота установки и использования.
2. Подходит для одиночной работы, когда не нужно сотрудничать с другими.
12.
Локальные СКВ «-»1. Нет совместной работы.
2. Нет сетевого резервного копирования — если компьютер сломается, история
изменений теряется.
3. Сложно отслеживать взаимосвязанные изменения в нескольких файлах.
13.
Централизованные СКВЕсть один центральный сервер, на котором хранится весь репозиторий (история,
файлы, метаданные).
Каждый разработчик получает рабочую копию с сервера, вносит изменения и
отправляет их обратно.
Изменения нельзя отправить без подключения к серверу.
14.
Централизованные СКВ «+»1. Централизованное управление: легко увидеть, кто работает над чем.
2. Простая модель для понимания: один источник истины.
3. Поддержка прав доступа и аудита.
15.
Централизованные СКВ «-»1. Одна точка отказа: если сервер упадёт — никто не сможет коммитить или видеть
историю.
2. Нельзя работать офлайн (нельзя фиксировать коммиты без сервера).
3. Слияние изменений от разных разработчиков может быть сложным.
4. Более медленные операции (всё через сеть).
16.
Распределённые СКВУ каждого разработчика есть полная копия всего репозитория, включая всю историю
изменений.
Можно делать коммиты локально, даже без интернета.
Чтобы обмениваться изменениями, разработчики синхронизируют свои репозитории
(через push / pull / fetch).
Нет "главного сервера" по умолчанию — но часто используют общий репозиторий
(например, на GitHub).
17.
Распределённые СКВ «+»1. Полная автономность: работа офлайн, быстрые коммиты.
2. Надёжность: если сервер исчезнет — любой участник команды может восстановить
проект.
3. Гибкость ветвления и слияния: создание и переключение веток почти мгновенное.
4. Целостность данных: всё хешируется (SHA-1 в Git), невозможно подделать историю
без обнаружения.
5. Поддержка сложных workflow (например, Git Flow, GitHub Flow).
18.
Распределённые СКВ «-»1. Более сложная модель для новичков.
2. Требует понимания распределённой архитектуры.
3. История может стать запутанной при плохом стиле коммитов.
19.
Какая СКВ лучше?Характеристика
Локальные
Централизованные
Распределённые
Хранение
истории
Только на 1 ПК
Только на сервере
У каждого
разработчика
Работа офлайн
Да
Нет
Да
Совместная
работа
Нет
Да
Да
Отказоустойчиво
сть
Низкая
Низкая
Высокая
Скорость
коммитов
Быстро
Медленно (через
сеть)
Очень быстро
(локально)
Гибкость
ветвления
Нет
Ограниченная
Очень высокая
20.
Какая СКВ лучше?RCS (локальная) — устаревший, подходит только для личных заметок.
SVN (централизованная) — ещё жив, но уступает Git в гибкости и скорости.
Git (децентрализованная) — современный стандарт, особенно в open-source и agileразработке.
21.
Выбор GITВ современной практике разработки ПО система контроля версий Git занимает
доминирующее положение, являясь стандартом для управления исходным кодом
проектов различного масштаба и сложности.
Git представляет собой распределённую систему контроля версий (Distributed Version
Control System, DVCS), разработанную Л. Торвальдсом в 2005 г. для управления
разработкой ядра ОС Linux
22.
Для чего изначально создали GITGit представляет собой распределённую систему контроля версий (Distributed Version
Control System, DVCS), разработанную Л. Торвальдсом в 2005 г. для управления
разработкой ядра ОС Linux
23.
GITПринципиальным отличием Git от централизованных систем контроля версий является
распределённая архитектура, в рамках которой каждый разработчик располагает
полноценной копией репозитория, включающей всю историю изменений проекта.
Данный подход обеспечивает высокую степень автономности и отказоустойчивости
системы.
24.
Архитектура GITВ основе функционирования Git лежит модель хранения данных, базирующаяся на
направленном ациклическом графе (Directed Acyclic Graph, DAG) объектов.
25.
Архитектура GIT4 типа объектов:
blob (бинарное содержимое файлов);
tree (древовидная структура папок проекта);
commit (коммит, фиксация изменений – это объект, который содержит в себе имя
автора, время коммита и объект дерева корневой папки проекта);
tag (именованная ссылка на конкретный коммит).
26.
Архитектура GITКаждый объект идентифицируется уникальным хэш-значением SHA-1, что гарантирует
целостность данных и возможность верификации содержимого.
27.
SHA-1Это 160-битный (20-байтовый) криптографический хеш, вычисляемый по содержимому
данных с использованием алгоритма SHA-1 (Secure Hash Algorithm 1). В системе Git это
значение используется как уникальный идентификатор для каждого объекта
репозитория (файлов, папок, коммитов и тегов).
28.
Трёхуровневая архитектура GITПроцесс фиксации изменений в Git реализован через трёхуровневую архитектуру:
рабочий каталог (working directory);
промежуточная область (staging area или index);
репозиторий (repository).
29.
Трёхуровневая архитектура GITРабочий каталог содержит текущую версию файлов проекта, промежуточная область
аккумулирует изменения, подготовленные к фиксации, а репозиторий хранит историю
всех зафиксированных состояний проекта.
Репозиторий может быть локальным и удалённым
30.
Ветвление в GITРеализация ветвления (branching) в Git способствует применению различных стратегий
разработки.Ветка представляет собой подвижный указатель на определённый
коммит, что делает операции создания и переключения между ветками практически
мгновенными, независимо от размера проекта.
31.
СлияниеМеханизм слияния (merging) позволяет интегрировать изменения из различных линий
разработки, применяя алгоритмы с автоматическим разрешением конфликтов.
32.
Fetch, pull и pushРаспределённая
природа
репозиториев,
между
Git
предполагает
которыми
наличие
осуществляется
множества
удалённых
синхронизация
изменений
посредством операций
fetch, pull и push.
Несмотря на отсутствие жёсткой иерархии, в практике разработки часто применяется
модель с центральным репозиторием, выполняющим роль канонического источника
кода проекта.
33.
Протоколы передачи данныхGit поддерживает различные протоколы передачи данных, включая HTTP/HTTPS,
SSH и собственный протокол Git.
Эффективность сетевых операций достигается благодаря применению алгоритмов
дифференциальной компрессии и передачи только изменённых объектов.
34.
Важный аспект работы!Формирование информативной истории коммитов (снимков состояний проекта с
фиксацией изменений в файлах с идентификацией авторов этих изменений).
Рекомендуется применение атомарных коммитов, охватывающих
логически завершённые изменения, и составление содержательных сообщений,
описывающих суть внесённых модификаций.
35.
Ключевые преимущества Gitвысокая производительность операций (благодаря локальному характеру
большинства действий);
надёжность
и
целостность
данных
(обеспечивается
криптографическим
хешированием);
гибкость в организации рабочих процессов;
эффективность механизма ветвления и слияния;
поддержка нелинейной разработки с параллельными линиями изменений.
36.
Установка GitПроверим на компьютере наличие редактора кода Visual Studio Code.
Установили Python в качестве расширения.
37.
Установка Git38.
Установка GitПроверили, что Git установлен на устройстве.
В уже установленной среде выбрали Visual Studio Code редактором для Git по
умолчанию.
Установили, что имя начальной ветки будет задаваться, как main
39.
Установка GitПосле установки Git запустим терминал – пользовательский интерфейс для
взаимодействия (в ОС Windows – Git Bash). ПКМ по рабочей области.
Здесь же определим в глобальных настройках Git имя пользователя, которым будут
подписываться изменения – Sergey Khvostov
40.
Установка GitПроверим настройки.
Определим правильный
формат строк для Windows.
Дальше зададим общую для всех ОС команду, которая позволит избежать
нечитаемых строк в неправильной кодировке .
41.
Создание локального репозиторияРепозиторий в Git – это хранилище проекта, содержащее все его файлы, историю
изменений и другую служебную информацию.
Это хранилище может выступать в роли:
а) локальной папки на компьютере разработчика;
б) папки на удалённом сервере.
Репозиторий позволяет отслеживать версии кода, управлять изменениями и работать в
команде.
Создадим свой локальный репозиторий.
42.
Создание локального репозиторияНа ПК под управлением ОС Windows cоздадим на Рабочем Столе папку, назовем её
вашими инициалами.
Правым щелчком на значке папки вызовем контекстное меню и в нём выберем
команду «Open Git Bash here»
43.
Создание локального репозиторияПроинициализируем репозиторий.
Был создан локальный репозиторий Git. Убедимся в этом, открыв папку в Проводнике,
а в ней – папку .git
44.
Создание файла README.mdОткроем редактор Visual Studio Code, выполним команду File, Open, Folder… и в
диалоговом окне выберем созданную папку
45.
Отслеживание файлов в репозитории GitФайлы в репозитории могут быть в одном из двух возможных состояний:
1. Неотслеживаемые (untracked) – без контроля со стороны Git, изменения в них не
будут добавлены в коммит. Это любые файлы, которые не входили в последний
коммит и не подготовлены к текущему коммиту.
2. Отслеживаемые (tracked) – о них Git знает и следит за изменениями в них.
Отслеживаемые файлы, в свою очередь, могут находится в следующих состояниях
46.
Виды отслеживаемых файлов1. Неизменённый (unmodified) – с момента последнего коммита в файле не было
никаких изменений.
2. Изменённый (modified) – с последнего коммита в файле были произведены какието изменения.
3. Подготовленный к коммиту (staged) – в файл внесены изменения, затем
проиндексированы, и позже эти изменения будут добавлены в следующий коммит.
47.
Виды отслеживаемых файлов48.
Работа с репозиториемПроверим текущее состояние репозитория
Добавим файл README.md в отслеживаемые
49.
Работа с репозиториемЧтобы проверить, что файл README.md теперь отслеживается, выполним снова
команду git status. При этом Git ответит, что коммитов ещё нет, но теперь файл
README.md – отслеживаемый
50.
Работа с репозиториемВнутри файла README.md напишем строку, используя синтаксис языка Markdown
Сохраним изменения в файле (File, Save) и повторим команду git status. Git отследит,
что после последнего сохранения проекта файл изменился
51.
Работа с репозиториемС помощью команды git add добавим изменённый файл README.md в индекс коммита,
после чего снова проверим статус репозитория.
52.
Коммит проекта в GitКоммит (commit) – это процедура, при которой делается снимок файла (папки, всего
репозитория) в текущем состоянии.
В самом простом случае (без ответвлений со слияниями и откатов) развитие проекта –
это линейная последовательность коммитов.
53.
Коммит проекта в GitКакие возможности коммит в Git даёт разработчикам:
отслеживать, кто, что и когда изменял;
возвращаться к предыдущему состоянию (снимку);
переписывать историю файлов.
54.
Коммит проекта в GitКоманда git commit создаёт новый коммит с файлами из индекса. Она откроет
текстовый редактор Vim для ввода сообщения коммита. Также с этой командой можно
использовать флаги:
-m позволяет написать сообщение вместе с командой, не открывая редактор
(например, git commit -m "add README.md");
55.
Коммит проекта в Git-a переносит все отслеживаемые файлы в область подготовленных файлов и
включает их в коммит (позволяет пропустить ввод git add перед коммитом);
--amend заменяет последний коммит новым изменённым (что бывает полезно, если
вы неправильно набрали сообщение последнего коммита или забыли включить в
него какие-то важные файлы).
56.
Советы по созданию коммита в Git1. Создавайте коммиты как можно чаще.
2. Одно изменение = один коммит: не помещайте все не связанные между собой
изменения в один коммит; разделите их, чтобы было проще откатиться.
57.
Советы по созданию коммита в Git4. Формат сообщений: заголовок должен быть в повелительном наклонении, меньше
50 символов в длину и должен логически дополнять фразу «this commit will…»
(например, this commit will fix bugs – этот коммит исправит баги).
5. Сообщение должно пояснять, почему был сделан коммит, а сам коммит
показывает, что изменилось.
6. Если у вас много незначительных изменений, хорошим тоном считается делать
небольшие коммиты при разработке, а при добавлении в большой репозиторий
объединять их в один.
58.
Коммит проекта в GitЗакоммитим последние изменения.
Выполним команду git status, чтобы убедиться, что все файлы попали в снимок проекта
59.
История коммитов проектаВыполните команду, результатом будет вывод на экран истории коммитов проекта
Эти коммиты создавались в порядке от самого нижнего к самому верхнему.
Коммиты хранят состояние файловой системы в определённый момент времени и
указатели на предыдущие коммиты. Каждый коммит содержит уникальную
контрольную сумму (хеш) – идентификатор, который Git использует, чтобы ссылаться на
коммит.
60.
Как отслеживается историяЧтобы отслеживать историю, Git хранит указатель HEAD, который указывает на первый
коммит (следуем по цепочке коммитов в обратном порядке, чтобы попасть к
предыдущим коммитам).
Каждый раз, когда записывается новый коммит, HEAD смещается и указывает на него.
Можно ссылаться на коммит либо через его контрольную сумму, либо через его
позицию относительно HEAD.
61.
Как отслеживается историяЧтобы посмотреть всю информацию о коммите, выполним команду git log без флага.
В такой записи можно увидеть полный хеш коммита, автора и дату с точным временем
создания.
62.
Как отслеживается историяИзменим произвольно содержимое файла README.md
Создадим коммит с ошибкой в подписи
63.
Как отслеживается историяВыведем историю, с помощью git log
64.
Изменение последнего коммитаИсправим подпись последнего коммита по команде git commit --amend -m «error»
Проверим, что файл README.md откатился к предыдущей версии и у коммита
изменился хеш (так как Git отменил прошлый коммит и создал новый, исправленный).
65.
Изменение последнего коммитаДобавим новый файл errors.md .
В последний коммит проекта с сообщением «error» .
Полная историю коммитов.
66.
Переключение на коммитНайдем хеш прошлого коммита, к которому хотим вернуться (достаточно первых 7
символов).
Переключимся на нужный коммит с помощью команды git checkout хеш_коммита.
67.
Переключение на коммитОткроем Visual Studio Code и убедимся, что в файле README.md написан только
заголовок «# Hello, world!», а файла errors.md больше нет в папке.
Проект откатился к состоянию, когда нового файла ещё нет, а в README.md был только
заголовок .
Проверим историю проекта – увидим только один этот коммит. Коммиты, сделанные
позже, отображаться не будут
68.
Переключение на коммитВызовем команду git log с флагом --all.
Git покажет всю историю проекта, вне зависимости от того, на каком коммите сейчас
находитесь
69.
Переключение на коммитПроверим, что вернулись к последней версии проекта с помощью команды git log -oneline
70.
GitHubGitHub – самая популярная в мире площадка для облачного хранения кода и
совместной командной разработки. Но у неё, конечно, есть множество альтернатив,
например, платформы GitLab, Bitbucket, mos.hub, а также собственных серверных
решений
71.
Основные функции GitHubКаждый проект в GitHub называется репозиторием (или «репо»).
Репозиторий содержит:
1. Все файлы проекта;
2. Полную историю изменений (коммитов);
3. Ветки, теги, настройки и документацию.
72.
Совместная работа (collaboration)Любой участник может:
1. Скачать проект (clone);
2. Внести изменения;
3. Отправить свои правки на обсуждение (pull request);
4. Обсудить код, предложить улучшения, найти баги.
5. GitHub автоматически сравнивает версии кода и помогает объединить их.
73.
Fork — копия чужого проектаЕсли у вас нет прав на чужой репозиторий — вы можете сделать форк (fork).
Это создаёт личную копию проекта в вашем аккаунте.
Вы работаете над ней, а потом предлагаете изменения автору через pull request.
74.
Issues — задачиIssues — это как задачи для команды:
«Нужно добавить кнопку»;
«Программа падает при вводе нуля»;
«Планируем новую фичу».
Каждая задача имеет:
Номер (например, #42);
Автора;
Статус (открыта/закрыта);
Комментарии, метки, исполнителя.
75.
Pull Request (PR) — предложение измененийЭто запрос на слияние вашей ветки в основную.
До слияния:
1. Команда просматривает код (code review);
2. Обсуждает детали;
3. Может попросить исправить что-то.
После одобрения — изменения попадают в основной проект.
76.
README.md как визитка проектаGitHub автоматически показывает файл README.md на главной странице репозитория.
В нём обычно пишут:
1. Что делает проект;
2. Как его запустить;
3. Кто автор;
4. Лицензию и т.д.
Пишется на Markdown — простом языке разметки.
77.
GitHub и Git разные понятияGit
GitHub
Программа на вашем компьютере
Веб-сервис в интернете
Работает локально
Требует интернета
Не требует аккаунта
Нужен аккаунт на github.com
Создан Линусом Торвальдсом
Создан компанией GitHub
78.
Аккаунт на GitHub79.
Аккаунт на GitHub80.
Вход в аккаунт через консольКлюч SSH – это криптографический безопасный идентификатор – длинный пароль,
используемый для авторизации. GitHub использует ключи SSH, чтобы вы могли
загружать файлы в репозиторий без необходимости каждый раз вводить свои логин и
пароль
81.
Вход в аккаунт через консольSSH-ключ – это, на самом деле, пара криптографических ключей (закрытого и
открытого), используемая для безопасной аутентификации при подключении к
удаленным серверам по протоколу SSH, заменяя пароль. Закрытый ключ (private key)
хранится в секрете на вашем компьютере, а открытый ключ (public key) размещается на
сервере, к которому вы подключаетесь. Сервер использует эту пару для проверки того,
что вы являетесь владельцем закрытого ключа, который соответствует открытому
ключу на сервере, обеспечивая тем самым безопасное соединение.
82.
Вход в аккаунт через консольОткроем терминал и выполним команду ssh-keygen. Программа спросит, куда
сохранить файл с ключом и предложит дважды ввести пароль для этого ключа. На этом
этапе лучше оставить все настройки по умолчанию
83.
Вход в аккаунт через консольНайдем
в
терминале
строчку
«Your
public
key
has
been
saved
in
/c/Users/user/.ssh/id_x.pub».
Здесь важен путь, по которому сохранился ключ. Скопируем окончание пути, начиная с
/.ssh
84.
Вход в аккаунт через консольВыполним команду cat ~/.ssh/id_x.pub, где после волнистой линии вставим путь до
вашего pub-файла, который только что скопировали.
На экране появится длинный набор символов, строка будет начинаться с ssh-rsa.
Скопируем в буфер обмена весь этот набор символов – это и есть SSH-ключ
85.
Вход в аккаунт через консольОсталось добавить его в наш профиль на GitHub.
В браузере перейдем по ссылке https://github.com/settings/keys
86.
Вход в аккаунт через консольВ открывшейся странице нажмите кнопку
New SSH key.
В открывшейся форме в поле Title введем
название для ключа.
В большое поле ниже вставим длинный
набор символов, который только что
скопировали
из
терминала.
Нажмем
кнопку Add SSH key.
Теперь ПК связан с профилем на GitHub
87.
Связка локального и удаленного репозиториевПерейдем по ссылке https://github.com/new
В поле Repository name введем название удалённого
репозитория. Название может быть любым, но
использовать можно только латинские буквы и
символы. Принято, чтобы название удалённого
репозитория совпадало с названием локальной
папки
с
проектом
на
компьютере.
Назовем
репозиторий соответственно.
Убедимся, что выбран вариант Public. Нажмем на
кнопку Create repository
88.
Связка локального и удаленного репозиториевНа открывшейся странице будет много
текста и разных команд.
Нужна
только
ссылка
на
новый
репозиторий.
Найдем ссылку на новый репозиторий.
В этой строке выберем переключатель
«SSH» и нажмем на иконку двух
квадратов в конце этой строки –
ссылка на удалённый репозиторий
будет скопирована в буфер обмена
89.
Связка локального и удаленного репозиториевОткроем терминал для папки с локальным репозиторием. Проверим, что к этой папке ещё
не привязан никакой удалённый репозиторий
90.
Связка локального и удаленного репозиториевСоздадим связь между локальным и удалёнными репозиториями с названием origin.
Выполним команду git remote add origin SSH_ссылка_на_папку_удалённого_репозитория
Проверим наличие связей у папки репозитория ещё раз
91.
Связка локального и удаленного репозиториевДля отправки чего-либо в удалённый репозиторий нужно воспользоваться командой git
push -u имя_связи main.
Отправим проект в удалённый репозиторий. После этого увидим отчёт, в котором Git
подробно сообщает, что он сделал
92.
Связка локального и удаленного репозиториевУбедимся, что проект действительно опубликовался на GitHub, для чего вернемся на
GitHub, где копировали ссылку, и обновим эту страницу. На ней появились два файла в
проекте: README.md и errors.md
93.
Связка локального и удаленного репозиториевНайдем
в
веб-интерфейсе
GitHub
надпись «4 commits» и нажмем на неё.
На открывшейся странице увидим всю
историю проекта почти так же, как
видели её до этого в терминале.
Сверху свежие коммиты, а внизу более
старые.
Видны
дата,
автор,
хеш
коммита. На каждый из коммитов
можно нажать, чтобы посмотреть, что
именно было изменено
94.
Связка локального и удаленного репозиториевЕсли нажать на вкладку Code, то будет возврат к просмотру всех файлов проекта. На
каждый из них тоже можно нажать и увидеть содержимое. Файл с названием README.md.
GitHub автоматически распознаёт и выводит его содержимое на главной странице
репозитория
95.
Связка локального и удаленного репозиториевЧтобы
просмотреть
все
созданные
репозитории, можно нажать на своё имя
пользователя вверху, перед названием
репозитория. Откроется главная страница
профиля. Здесь видны личные данные,
график
активности
и
последние
несколько репозиториев, над которыми
была работа.
Во вкладке Repositories будут все когдалибо созданные в профиле репозитории
96.
Работа с веткамиВетка – опция в Git, которая позволяет создавать параллельно реализуемые клоны
проекта, когда:
над проектом работает несколько человек;
каждый делает свою задачу;
чтобы не мешать друг другу, каждый работает в своей ветке;
когда задача готова, то всё сливается в основную ветку.
97.
Работа с веткамиИспользование веток:
помогает избежать поломок в основном проекте, пока функция не готова;
избавляет от конфликтов, когда несколько человек исправляют одну и ту же часть поразному.
98.
Работа с веткамиСоздадим ветку с названием new-branch. Выполним git branch, в терминале будут уже два
имени
99.
Работа с веткамиТеперь переключимся на новую ветку. Для этого наберем команду переключения git
checkout с именем ветки, в которую хотим переключиться
100.
Работа с веткамиОткроем страницу репозитория на GitHub, найдем все
ветки. В выпадающем списке можно переключать
проект с одной ветки на другую.
Рядом с выпадающим списком есть надпись «2
branches».
Нажмем на кнопку «2 branches», откроется страница со
всеми ветками. Тут видна ветка по умолчанию, а также
наглядно показано, в какой из веток есть изменения.
В этом случае в ветке new-branch есть один коммит,
которого нет в main
101.
Работа с ветками102.
Работа с веткамиПросмотрим историю любой ветки в терминале
103.
Работа с веткамиСмерджим ветки new-branch
104.
Работа с веткамиОбновим проект на GitHub. Выполним команду git push. В этот раз можно не писать -u
origin main. Это дополнение нужно только первый раз, когда отправляем новую ветку в
GitHub. Git уже знает, что и куда отправлять
105.
Приёмы командной работы в Git и GithubКомандная работа в Git и GitHub – это совместная реализация проектов несколькими
разработчиками, при которой Git используется в качестве системы контроля версий
локальных хранилищ отдельных участников команд, а GitHub – как общее удалённое
хранилище для интеграции кода и коллективной работы над ним. Это позволяет командам
работать параллельно над разными задачами в проекте, использовать ветки для изоляции
изменений и последующего корректного слияния.
106.
Приёмы командной работы в Git и GithubПри командной разработке важно уметь:
работать с коммитами;
отправлять изменения из локального хранилища в удалённый репозиторий
проекта (обновлять проект);
синхронизировать локальные и удалённый репозитории;
настраивать видимость файлов и папок репозитория для СКВ;
создавать задачи (issues);
отправлять изменения в удаленный репозиторий через pull request, который
предполагает обсуждение и код-ревью.
107.
Игнорирование файлов при публикации коммитаФайл .gitignore – это файл-настройка, который создаётся в папке проекта. В нём
указывается, какие файлы нужно игнорировать при публикации на GitHub.
При этом:
имя файла должно начинаться с точки, а в конце не должно быть никакого иного
расширения;
правила игнорирования сработают только для файлов, не добавленных в индекс,
неотслеживаемых, т.е. до команды git add.
108.
Ведение задач IssuesIssues – это система ведения задач в GitHub, облегченный вариант трекера [8].
Используются в следующих ситуациях:
сбор обратной связи от пользователей по ошибкам;
планирование доработки проекта;
обсуждение внутри каждой задачи;
маркировка задач разными лейблами, сбор задач в группы;
назначение исполнителя для задачи.
109.
Ведение задач Issues110.
Запросы на слияние pull requestPull request – это запросы на слияние, который предполагает обсуждение и код-ревью.
Удобный способ предложить свои изменения в открытый командный проект.
Используется в следующих ситуациях:
чтобы не засорять историю проекта спорными коммитами;
для внесения изменений не в свой проект.
111.
Запросы на слияние pull requestПри наличии прав доступ к репозиторию внести в проект новый запрос на слияние
можно через «New Pull Request», далее следует описать суть изменений и отправить на
кодревью через «Create Pull Request».
При отсутствии прав доступа к репозиторию предложить изменения в проект можно
следующим образом: сделать fork репозитория, выбрать «Open Pull Request», выбрать
источник изменений через compare across forks, создать «New Pull Request».
112.
Запросы на слияние pull requestЗапросы pull request нельзя удалить на GitHub, их можно только закрыть.
Код-ревью – это процесс проверки кода на ошибки, работоспособность и соответствие
внутренним правилам разработки команды.
113.
Запросы на слияние pull requestПосле нажатия кнопки «Create pull request» откроется интерфейс создания pull
request, похожий на тот, что видели при создании issue. Нужно написать заголовок и
добавить описание того, что вы предлагаете изменить. В правой колонке есть новая
настройка Reviewers.
В ней, если у вас есть права на работу в этом репозитории, можно выбрать того,
кто должен провести код-ревью изменений.
114.
GitHub DesktopGitHub
Desktop
—
это
бесплатное
приложение
с
графическим
интерфейсом,
разработанное компанией GitHub, которое позволяет работать с системой контроля
версий Git без использования командной строки.
115.
GitHub DesktopФункция
Что делает
Можно создать новый
Создание репозитория
локальный проект
прямо в приложении
Показывает, какие
Отслеживание
файлы изменились,
изменений
добавлены или удалены
Зачем это нужно
Функция
Не нужно git init в
терминале
Создание репозитория
Видно всё наглядно
Отслеживание
изменений
Подготовка коммитов
(staging)
Выбрали файл, и он
попадает в коммит
Заменяет команду git
add
Подготовка коммитов
(staging)
Создание коммитов
Вводим описание,
нажимаем «Commit»
Не нужно git commit -m
"..."
Создание коммитов
Создание и
переключение веток
Есть кнопка «New
branch», список веток
Без git checkout и git
branch
Создание и
переключение веток
Публикация на GitHub
Кнопка «Publish
repository» и проект
появляется на GitHub
Не нужно настраивать
SSH и писать git remote Публикация на GitHub
add
116.
GitHub Desktop117.
Создание репозитория и публикация с помощьюGitHub Desktop
118.
Создание репозитория и публикация с помощьюGitHub Desktop
119.
Создание репозитория и публикация с помощьюGitHub Desktop
120.
Создание репозитория и публикация с помощьюGitHub Desktop
121.
Создание репозитория и публикация с помощьюGitHub Desktop
122.
Создание репозитория и публикация с помощьюGitHub Desktop
123.
Создание репозитория и публикация с помощьюGitHub Desktop
124.
Настройки репозитория на GitHub125.
Добавление collaborators126.
Добавление collaborators127.
Как склонировать репозиторий128.
Как склонировать репозиторий129.
Как склонировать репозиторий130.
Коммит в GitHub Desktop131.
Вопросы1.
Что такое Git? Назовите преимущества использования Git в разработке.
2.
Что такое репозиторий, коммит, механизмы ветвления и слияния?
3.
Какими могут быть репозитории в Git?
4.
В каких состояниях могут находиться файлы в репозитории Git?
5.
Что является идентификатором коммита в проекте?
6.
Что такое Github? Перечислите преимущества его использования.
7.
Что такое форк в Github? Когда он может использоваться?
8.
Что такое командная работа над проектом?
9.
Как используются Git и Github в командной разработке?
10. Какие действия выполняются по команде git pull? Опишите действие команд git fetch и git merge.
132.
СПАСИБОЗА ВНИМАНИЕ!
Программное обеспечение