Similar presentations:
Введение в Git
1.
Семинар 52.
Ваши вопросы3.
Четвертый опросhttps://nvt.miem.hse.ru/s/ps2025-4
4.
Цели семинараСистемы контроля версий
Git
Github vs Gitlab
Практика работы с Git
5.
Хотим работать в командеНадо создавать
Pet project с
другом
Надо создавать
Pet project с
другом
6.
Как синхронизировать версии?Program v1
Program v2
PC1
PC2
7.
Хотим работать в командеКогда попросил коллегу отправить тебе скриншот с
его кодом
8.
Системы контроля версий9.
Что такое GitGit - система контроля версий / хранилище истории разработки
GIT
V2
main.py
V2
V1
main.py
V2
main.py
main.py
config.json
config.json
10.
Командная работаGit - распределенная система
У каждого разработчика есть
локальная копия Git, хранящая
историю разработки проекта
Центральный сервер не
является обязательным, но в
реальных проектах чаще
всего присутствует
11.
Создание репозиторияДля создания репозитория локально необходимо в корне вашего проекта
написать следующую команду:
После этого в папке проекта появится скрытая папка .git, которая и будет
хранить всю информацию
12.
Начальная настройкаGit хранит не только сами изменения, но и информацию о том, кто был их
автором. Давайте настроим наш Git и укажем кто мы такие
13.
Статусы файловПри работе с Git необходимо различать три понятия: рабочая директория,
индекс и репозиторий
Рабочая
директория
main.py
.git
Индекс
Репозиторий
14.
Индекс хранит все файлы, отслеживаемые GitПомимо этого индекс является промежуточным хранилищем изменений
Рабочая
директория
Индекс
main.py
main.py
15.
Когда мы доделали какую-то часть проекта, мы можем добавить всеизменения в репозиторий
Индекс
Репозиторий
main.py
main.py
16.
Статусы файловРабочая
директория
.git
Индекс
Репозиторий
add
main.py
main.py
main.py
commit
add
settings.json
settings.json
main.py
settings.json
settings.json
17.
Проверка состояния проектаДиректория
main.py
Индекс
Репозиторий
18.
Проверка состояния проектаДиректория
main.py
Индекс
main.py
Репозиторий
19.
Проверка состояния проектаДиректория
main.py
Индекс
Репозиторий
main.py
main.py
20.
Последний коммит21.
Хороший коммитВажно создавать коммиты, придерживаясь следующих принципов:
● Атомарность - каждый коммит должен содержать в себе изменения,
связанные с одной обособленной функцией
● Консистентность (постоянство) - каждый коммит должен представлять
логически завершенное изменение проекта, желательно не ломая его
работу
● Описание коммита должно четко и понятно отражать смысл коммита.
Рекомендуется не делать сообщение коммита длиннее 50 символов
22.
ВеткиВетки - один из важнейших инструментов Git. По сути ветка - обособленный
поток разработки, причем новые коммиты сделанные в одной ветке не
существуют в других ветках
master
c1
c2
c3
feature-hse-auth
c6
c4
c7
c5
23.
Работа с веткамиСоздание ветки
Смена активной ветки
24.
Слияние ветокКоманда для слияния веток:
25.
Feature26.
Слияние ветокmaster
feature-bye
Но что если мы изменили один и тот же файл как в главной ветке, так и в
новой, причем эти изменения затрагивают одни и те же строки файла
27.
Разрешение конфликтовmaster
feature-bye
28.
Разрешение конфликтовМы можем исправить проблему вручную, удалив лишние строки
29.
Разрешение конфликтовНо в современных редакторах часто есть встроенные инструменты для
решения конфликтов
30.
Github flowСуществуют разные правила по созданию веток и ведению Git. Одно из
частых и самых простых решений - так называемый, Github flow
31.
Github vs GitlabВсе это время мы работали с локальным репозиторием, но раньше мы уже
упоминали то, что зачастую используется отдельный сервер для
синхронизации изменений между участниками проекта
DevOps платформа
Соц сеть
32.
Создание удаленного репозитория33.
Добавление удаленногорепозитория
Отправляем изменения на сервер:
34.
35.
Синхронизируемся с удаленнымрепозиторием
При работе в команде ваши коллеги также отправляют свои изменения на
сервер, но Git не проверяет удаленные изменения постоянно
Узнать про удаленные изменения
Подтянуть удаленные изменения
36.
Создание MR (PR)37.
38.
39.
40.
Свой Gitlabhttps://git.miem.hse.ru
41.
.gitignorehttps://git-scm.com/docs/gitignore
42.
Задание по Git● Дедлайн 15 февраля 21:00
software