diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..c36c470
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,1436 @@
+# Лабораторная работа №2
+### Применение системы контроля версий Git.
+#### 1. Цель работы #
+Знать понятия и компоненты систем контроля версий (СКВ), порядок и приемы работы с ними.
+Уметь участвовать в командной разработке, используя конкретную СКВ — Git, а также типовой web-интерфейс Gitea.
+
+#### 2. Создание директорий
+Создадим каталог `/Project/lab02` для данной ЛР и запустим в нем Git Bash.
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02
+```
+Также создаем каталоги `/Project/lab02/alice` и `/Project/lab02/bob`
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02
+$ mkdir alice
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02
+$ mkdir bob
+```
+Проверяем только что созданные дирректории:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02
+$ ls
+alice/ bob/
+```
+Создадим директорию `alice/project`
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02/alice
+$ mkdir project
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02/alice
+$ ls
+project/
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02/alice
+$ cd project
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02/alice/project
+$ cd ..
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02/alice
+$ cd project
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02/alice/project
+$
+```
+
+#### Инициализация репозитория и настройка Git.
+
+Инициализируем репозиторий в текущем каталоге `project`:
+
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02/alice/project
+$ git init
+Initialized empty Git repository in C:/Users/Артем/Project/lab02/alice/project/.git/
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02/alice/project (master)
+$
+```
+К приглашению командной строки добавилось `(master)`: имя текущий ветви Git.
+Перед началом работы следует выполнить некоторые настройки:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02/alice/project (master)
+$ git config --global user.name "rogozinay"
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02/alice/project (master)
+$ git config --global user.email "rogozinay@mpei.ru"
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/Project/lab02/alice/project (master)
+$ git config --global core.autocrlf true
+```
+Укажем имя, которым будут подписаны коммиты.
+Укажем электронную почту, которая будет в описании коммитера.
+Зададим преобразование окончаний при котором Git будет всегда преобразовывать окончания строк в LF при извлечении. Этот вариант следует использовать для файлов, которые должны поддерживать окончания LF.
+
+### Занесение файлов под контроль версий
+Запустим CodeBlocks и создадим проект в репозитории Алисы:
+
+_Project title:_ project
+_Folder to create project in:_ C:\Users\Артем\Project\lab02\alice\project
+_Project filename:_ project.cbp
+_Resulting filename:_ C:\Users\user\Desktop\lab02\alice\project\project.cbp
+
+Соберите проект.
+
+На этом этапе имеем следующую структуру файлов и каталогов:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+
+No commits yet
+
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ bin/
+ main.cpp
+ obj/
+ project.cbp
+
+nothing added to commit but untracked files present (use "git add" to track)
+```
+Вывод демонстрирует нам адрес репозитория, имя ветки, список файлов, наличие коммитов и статус отслеживания файлов.
+Добавим файл main.cpp в индекс, то есть в набор изменений, который войдет в очередной коммит. Так как этот файл ранее не отслеживался Git, то с этого момента Git начнет его отслеживать.
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git add main.cpp
+```
+Просмотрим состояние рабочей копии и отметим изменения:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+
+No commits yet
+
+Changes to be committed:
+ (use "git rm --cached ..." to unstage)
+ new file: main.cpp
+
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ bin/
+ obj/
+ project.cbp
+```
+Из вывода видно, что Git начал отслеживать файл main.cpp, при этом все остальные файлы не отслеживаются.
+
+Выполним коммит с файлом main.cpp и коротким сообщением:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git commit -m 'code: заготовка программы'
+[master (root-commit) 28681bd] code: заготовка программы
+ 1 file changed, 9 insertions(+)
+ create mode 100644 main.cpp
+```
+Теперь мы отправили изменения в хранилище и Git показывает нам что в рабочей копии на данный момент больше никаких изменений нет, но есть не отслеживаемые файлы, изменения в которых не отслеживаются. Также есть подсказка что их можно добавить с помощью команды (use "git add" to track).
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ bin/
+ obj/
+ project.cbp
+
+nothing added to commit but untracked files present (use "git add" to track)
+```
+### Составление сообщений к коммитам
+Важно, чтобы описания коммитов были информативными в будущем по ним можно быстро читать историю проекта, искать коммиты по ключевым словам. Заголовок (первая строка) должен быть коротким (желательно до 50 символов) и описывать суть изменений, потому что только он показывается в списке коммитов. Часто в заголовок включают тему (к какой части проекта относится коммит) или номер задачи в системе отслеживания ошибок.
+Добавим файл project.cbp в индекс и сделаем коммит с ним:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git add project.cbp
+warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git
+touches it
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Changes to be committed:
+ (use "git restore --staged ..." to unstage)
+ new file: project.cbp
+
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ bin/
+ obj/
+```
+Посмотрим историю коммитов, где новые коммиты идут вначале, и увидим внесенный нами комментарий.
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --stat
+commit 6d51e028f640d5cd11264c6be9f636e75b575d33 (HEAD -> master)
+Author: rogozinay
+Date: Sat Nov 18 18:40:52 2023 +0300
+
+ build: добавлен файл проекта
+
+ project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 40 insertions(+)
+
+commit 28681bd19eb9eb0dff028537c018599fcb047e3e
+Author: rogozinay
+Date: Sat Nov 18 18:22:52 2023 +0300
+
+ code: заготовка программы
+
+ main.cpp | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+```
+### Создание коммитов с изменениями
+Откроем Code Blocks и заменим тело функции main() на ввод двух чисел:
+
+```
+#include
+
+using namespace std;
+
+int main()
+{
+ cout << "Enter A and B: " << endl;
+ int a, b;
+ cin >> a >> b;
+
+
+ return 0;
+}
+```
+Теперь посмотрим изменения:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Changes not staged for commit:
+ (use "git add ..." to update what will be committed)
+ (use "git restore ..." to discard changes in working directory)
+ modified: main.cpp
+
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ bin/
+ obj/
+ project.layout
+
+no changes added to commit (use "git add" and/or "git commit -a")
+```
+Видим в выводе Git показывает изменения в ветке master, файлы которые были изменены, а также неотслеживаемые файлы в проекте и подсказки о том как занести файлы в индекс, откатить изменения.
+Выберем файлы, изменения которых должны войти в коммит, затем сделаем коммит и проверим состояние:
+Code Blocks:
+```
+int main()
+{
+ cout << "Enter A and B: " << endl;
+ int a, b;
+ cin >> a >> b;
+ cout << "A + B = " << a + b << '\n'
+ return 0;
+}
+```
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git add main.cpp
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git commit -m "build: добавлен вывод суммы a и b"
+[master 96dfa86] build: добавлен вывод суммы a и b
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+```
+Этот способ удобен, если изменения присутствуют не только в тех файлах, которые коммитятся.
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --stat
+commit 96dfa86be9c4561afd4c9b6026fda862aee0a3b5 (HEAD -> master)
+Author: rogozinay
+Date: Sun Nov 19 17:21:23 2023 +0300
+
+ build: добавлен вывод суммы a и b
+
+ main.cpp | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 6d51e028f640d5cd11264c6be9f636e75b575d33
+Author: rogozinay
+Date: Sat Nov 18 18:40:52 2023 +0300
+
+ build: добавлен файл проекта
+
+ project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 40 insertions(+)
+
+commit 28681bd19eb9eb0dff028537c018599fcb047e3e
+Author: rogozinay
+Date: Sat Nov 18 18:22:52 2023 +0300
+
+ code: заготовка программы
+
+ main.cpp | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+```
+Добавим вывод разности:
+```
+int main()
+{
+ cout << "Enter A and B: " << endl;
+ int a, b;
+ cin >> a >> b;
+ cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
+
+ return 0;
+}
+```
+Добавим в индекс все изменения, затем сделаем коммит:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git add -u
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git commit -m "build: добавлен вывод разности a и b"
+[master 22be7f3] build: добавлен вывод разности a и b
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --stat
+commit 22be7f39c4e83fdfe02e0c75c8d4b20ec629a5b8 (HEAD -> master)
+Author: rogozinay
+Date: Sun Nov 19 17:54:14 2023 +0300
+
+ build: добавлен вывод разности a и b
+
+ main.cpp | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ bin/
+ obj/
+ project.layout
+
+nothing added to commit but untracked files present (use "git add" to track)
+```
+
+### Игнорирование файлов
+
+Укажем Git игнорировать присутствие каталога bin. Для этого создадим в CodeBlocks новый файл (File → New… → Empty) и запишем в него строку:
+```
+/bin
+```
+Косая черта в начале означает путь от корня репозитория (каталога project), без нее игнорировался бы файл или каталог bin в любой подпапке. Сохраним файл в корне репозиторий под именем .gitignore, именно с точкой в начале.
+
+Каждое правило игнорирования пишется на отдельной строке .gitignore.
+
+Выполнив git status, можно видеть, что каталог bin не отображается.
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Changes not staged for commit:
+ (use "git add ..." to update what will be committed)
+ (use "git restore ..." to discard changes in working directory)
+ modified: main.cpp
+
+Untracked files:/
+++--------
+ (use "git add ..." to include in what will be committed)
+ .gitignore
+ obj/
+ project.depend
+ project.layout
+
+no changes added to commit (use "git add" and/or "git commit -a")
+```
+Добавим все изменения в индекс, сделаем коммит. Также добавим к игнорируемым файлам /obj и .layout
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Changes not staged for commit:
+ (use "git add ..." to update what will be committed)
+ (use "git restore ..." to discard changes in working directory)
+ modified: main.cpp
+ modified: project.cbp
+
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ .gitignore
+ project.depend
+
+no changes added to commit (use "git add" and/or "git commit -a")
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git commit -a -m "build: добавлено игнорирование файлов"
+warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
+[master 1e31a4c] build: добавлено игнорирование файлов
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ .gitignore
+ project.depend
+
+nothing added to commit but untracked files present (use "git add" to track)
+
+```
+Результат виден выше. Git перестал отображать эти файлы и папки.
+Создадим коммит с .gitignore
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git add .gitignore
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git commit -m "build: добавлен .gitignore"
+[master 9a14516] build: добавлен .gitignore
+ 1 file changed, 3 insertions(+)
+ create mode 100644 .gitignore
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ project.depend
+
+nothing added to commit but untracked files present (use "git add" to track)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --oneline --decorate
+9a14516 (HEAD -> master) build: добавлен .gitignore
+1e31a4c build: добавлено игнорирование файлов
+22be7f3 build: добавлен вывод разности a и b
+96dfa86 build: добавлен вывод суммы a и b
+6d51e02 build: добавлен файл проекта
+28681bd code: заготовка программы
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --oneline --decorate
+9a14516 (HEAD -> master) build: добавлен .gitignore
+1e31a4c build: добавлено игнорирование файлов
+22be7f3 build: добавлен вывод разности a и b
+96dfa86 build: добавлен вывод суммы a и b
+6d51e02 build: добавлен файл проекта
+28681bd code: заготовка программы
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --oneline --decorate --all --graph
+* 9a14516 (HEAD -> master) build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+
+```
+
+### Работа с журналом репозитария
+
+Просмотр истории репозитория в разном виде:
+
+```Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --stat
+commit 9a1451646da81b21f97c5508cc76d7799345bf04 (HEAD -> master)
+Author: rogozinay
+Date: Sun Nov 19 20:52:02 2023 +0300
+
+ build: добавлен .gitignore
+
+ .gitignore | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 1e31a4c532817d311cf757a9672c5d2d28899699
+Author: rogozinay
+Date: Sun Nov 19 19:36:45 2023 +0300
+
+commit 9a1451646da81b21f97c5508cc76d7799345bf04 (HEAD -> master)
+Author: rogozinay
+Date: Sun Nov 19 20:52:02 2023 +0300
+
+ build: добавлен .gitignore
+
+ .gitignore | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 1e31a4c532817d311cf757a9672c5d2d28899699
+Author: rogozinay
+Date: Sun Nov 19 19:36:45 2023 +0300
+
+ build: добавлено игнорирование файлов
+
+ main.cpp | 8 +++-----
+ project.cbp | 3 +++
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+commit 22be7f39c4e83fdfe02e0c75c8d4b20ec629a5b8
+Author: rogozinay
+Date: Sun Nov 19 17:54:14 2023 +0300
+
+ build: добавлен вывод разности a и b
+
+ main.cpp | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+commit 96dfa86be9c4561afd4c9b6026fda862aee0a3b5
+Author: rogozinay
+Date: Sun Nov 19 17:21:23 2023 +0300
+
+ build: добавлен вывод суммы a и b
+
+ main.cpp | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 6d51e028f640d5cd11264c6be9f636e75b575d33
+Author: rogozinay
+Date: Sat Nov 18 18:40:52 2023 +0300
+
+ build: добавлен файл проекта
+
+ project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 40 insertions(+)
+
+commit 28681bd19eb9eb0dff028537c018599fcb047e3e
+Author: rogozinay
+Date: Sat Nov 18 18:22:52 2023 +0300
+
+ code: заготовка программы
+
+ main.cpp | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+ Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --oneline --decorate
+9a14516 (HEAD -> master) build: добавлен .gitignore
+1e31a4c build: добавлено игнорирование файлов
+22be7f3 build: добавлен вывод разности a и b
+96dfa86 build: добавлен вывод суммы a и b
+6d51e02 build: добавлен файл проекта
+28681bd code: заготовка программы
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --oneline --decorate --all --graph
+* 9a14516 (HEAD -> master) build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+```
+
+#### Поиск коммитов
+Коммиты можно фильтровать по разным признакам:
+
+git log -- main.cpp показывает затрагивающие main.cpp;
+git log --grep "code:" показывает коммиты с code: в сообщении.
+Найдем сначала коммиты по теме build, затем коммиты, затрагивающие project.cbp:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --oneline --decorate --grep "build:"
+9a14516 (HEAD -> master) build: добавлен .gitignore
+1e31a4c build: добавлено игнорирование файлов
+22be7f3 build: добавлен вывод разности a и b
+96dfa86 build: добавлен вывод суммы a и b
+6d51e02 build: добавлен файл проекта
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log -- project.cbp
+commit 1e31a4c532817d311cf757a9672c5d2d28899699
+Author: rogozinay
+Date: Sun Nov 19 19:36:45 2023 +0300
+
+ build: добавлено игнорирование файлов
+
+commit 6d51e028f640d5cd11264c6be9f636e75b575d33
+Author: rogozinay
+Date: Sat Nov 18 18:40:52 2023 +0300
+
+ build: добавлен файл проекта
+```
+#### Просмотр коммитов
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git show HEAD
+commit 9a1451646da81b21f97c5508cc76d7799345bf04 (HEAD -> master)
+Author: rogozinay
+Date: Sun Nov 19 20:52:02 2023 +0300
+
+ build: добавлен .gitignore
+
+diff --git a/.gitignore b/.gitignore
+new file mode 100644
+index 0000000..9d83ebf
+--- /dev/null
++++ b/.gitignore
+@@ -0,0 +1,3 @@
++/bin
++/obj
++*.layout
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git show main
+fatal: ambiguous argument 'main': unknown revision or path not in the working tree.
+Use '--' to separate paths from revisions, like this:
+'git [...] -- [...]'
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git show master
+commit 9a1451646da81b21f97c5508cc76d7799345bf04 (HEAD -> master)
+Author: rogozinay
+Date: Sun Nov 19 20:52:02 2023 +0300
+
+ build: добавлен .gitignore
+
+diff --git a/.gitignore b/.gitignore
+new file mode 100644
+index 0000000..9d83ebf
+--- /dev/null
++++ b/.gitignore
+@@ -0,0 +1,3 @@
++/bin
++/obj
++*.layout
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git show 22be7f3
+commit 22be7f39c4e83fdfe02e0c75c8d4b20ec629a5b8
+Author: rogozinay
+Date: Sun Nov 19 17:54:14 2023 +0300
+
+ build: добавлен вывод разности a и b
+
+diff --git a/main.cpp b/main.cpp
+index 1008718..4e76e8a 100644
+--- a/main.cpp
++++ b/main.cpp
+@@ -5,9 +5,11 @@ using namespace std;
+ int main()
+ {
+ cout << "Enter A and B: " << endl;
+- int a, b;
+- cin >> a >> b;
+-
++ int a, b, c; d;
++ c = a + b;
++ d = a - b;
++ count << c;
++ count << d;
+
+ return 0;
+ }
+```
+Добавим вывод произведения чисел:
+
+Code Blocks:
+```
+int main()
+{
+ cout << "Enter A and B: " << endl;
+ int a, b;
+ cin >> a >> b;
+ cout << "A + B = " << a + b << '\n'
+ << "A - B = " << a - b << '\n'
+ << "A * B = " << a * b << '\n';
+
+ return 0;
+}
+```
+Просмотрим изменения. Вывод содержит отметки о том что изменено, какие строки удалены, что добавлено.
+```Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git diff
+diff --git a/main.cpp b/main.cpp
+index cc8c622..5302c5e 100644
+--- a/main.cpp
++++ b/main.cpp
+@@ -7,7 +7,9 @@ int main()
+ cout << "Enter A and B: " << endl;
+ int a, b;
+ cin >> a >> b;
+- cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
++ cout << "A + B = " << a + b << '\n'
++ << "A - B = " << a - b << '\n'
++ << "A * B = " << a * b << '\n';
+
+ return 0;
+ }
+```
+Просмотрим изменения между самым первым коммитом и коммитом, добавляющим вывод разности.
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git diff HEAD~3 HEAD
+diff --git a/.gitignore b/.gitignore
+new file mode 100644
+index 0000000..9d83ebf
+--- /dev/null
++++ b/.gitignore
+@@ -0,0 +1,3 @@
++/bin
++/obj
++*.layout
+diff --git a/main.cpp b/main.cpp
+index 1008718..cc8c622 100644
+--- a/main.cpp
++++ b/main.cpp
+@@ -7,7 +7,7 @@ int main()
+ cout << "Enter A and B: " << endl;
+ int a, b;
+ cin >> a >> b;
+-
++ cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
+
+ return 0;
+ }
+diff --git a/project.cbp b/project.cbp
+index 99bb702..f5f4083 100644
+--- a/project.cbp
++++ b/project.cbp
+@@ -32,6 +32,9 @@
+
+
+
++
++
++
+
+
+
+```
+### Откат изменений
+Сделаем коммит последнего изменения. Мы добавили вывод произведения a и b:
+```Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Changes not staged for commit:
+ (use "git add ..." to update what will be committed)
+ (use "git restore ..." to discard changes in working directory)
+ modified: main.cpp
+
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ project.depend
+
+no changes added to commit (use "git add" and/or "git commit -a")
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git commit -a -m "build: добавлен вывд произведения a и b"
+[master e8230b0] build: добавлен вывд произведения a и b
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ project.depend
+
+nothing added to commit but untracked files present (use "git add" to track)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --oneline --decorate --grep "build:"
+e8230b0 (HEAD -> master) build: добавлен вывд произведения a и b
+9a14516 build: добавлен .gitignore
+1e31a4c build: добавлено игнорирование файлов
+22be7f3 build: добавлен вывод разности a и b
+96dfa86 build: добавлен вывод суммы a и b
+6d51e02 build: добавлен файл проекта
+```
+Проверяем, все добавлено.
+
+### Откат изменений
+
+Выполним откат изменений к последнему коммиту перед выводом произведения чисел:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --oneline --decorate --grep "build:"
+e8230b0 (HEAD -> master) build: добавлен вывд произведения a и b
+9a14516 build: добавлен .gitignore
+1e31a4c build: добавлено игнорирование файлов
+22be7f3 build: добавлен вывод разности a и b
+96dfa86 build: добавлен вывод суммы a и b
+6d51e02 build: добавлен файл проекта
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git reset --hard HEAD~1
+HEAD is now at 9a14516 build: добавлен .gitignore
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git log --oneline --decorate --grep "build:"
+9a14516 (HEAD -> master) build: добавлен .gitignore
+1e31a4c build: добавлено игнорирование файлов
+22be7f3 build: добавлен вывод разности a и b
+96dfa86 build: добавлен вывод суммы a и b
+6d51e02 build: добавлен файл проекта
+```
+#### Другой способ отката
+
+Добавим над функцией main() комментарий:
+
+Code Blocks:
+```
+// you may type whatever you want
+```
+Уберем изменения в main.cpp другим способом — откатив этот файл к состоянию в последнем коммите (HEAD):
+```
+git checkout HEAD -- main.cpp
+```
+Второй способ необходим, чтобы откатывать отдельные файлы. Аргумент HEAD необязателен, но вместо него можно указать не последний, а любой другой коммит. Это полезно, если нужно восстановить состояние одного файла таким, какое оно было в известный момент.
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Changes not staged for commit:
+ (use "git add ..." to update what will be committed)
+ (use "git restore ..." to discard changes in working directory)
+ modified: main.cpp
+
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ project.depend
+
+no changes added to commit (use "git add" and/or "git commit -a")
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git checkout HEAD -- main.cpp
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (master)
+$ git status
+On branch master
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ project.depend
+
+nothing added to commit but untracked files present (use "git add" to track)
+```
+Отправляем на сервер через hhtp://
+```Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git remote set-url origin http://uit.mpei.ru/git/rogozinay/cs-lab02.git
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git push -u origin main
+Enumerating objects: 19, done.
+Counting objects: 100% (19/19), done.
+Delta compression using up to 4 threads
+Compressing objects: 100% (17/17), done.
+Writing objects: 100% (19/19), 2.49 KiB | 636.00 KiB/s, done.
+Total 19 (delta 2), reused 0 (delta 0), pack-reused 0
+remote: . Processing 1 references
+remote: Processed 1 references in total
+To http://uit.mpei.ru/git/rogozinay/cs-lab02.git
+ * [new branch] main -> main
+branch 'main' set up to track 'origin/main'.
+```
+### Получение проекта с сервера
+Выполним клонирование проекта в директорию Боба:
+```Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git clone http://uit.mpei.ru/git/rogozinay/cs-lab02.git ~/project/lab02/bob/project
+Cloning into 'C:/Users/Артем/project/lab02/bob/project'...
+remote: Enumerating objects: 19, done.
+remote: Counting objects: 100% (19/19), done.
+remote: Compressing objects: 100% (17/17), done.
+remote: Total 19 (delta 2), reused 0 (delta 0), pack-reused 0
+Receiving objects: 100% (19/19), done.
+Resolving deltas: 100% (2/2), done.
+```
+Настроим Git на машине Боба:
+```Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git config --global user.name "rogozinay"
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git config --global user.email "rogozinay@mpei.ru"
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git config --global core.autocrlf true
+```
+Сделаем изменения, добавим вывод умножения на машине Боба, проверим изменения, внесем в индекс, сделаем коммит и отправим все это на сервер:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ ls
+main.cpp project.cbp
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git status
+On branch main
+Your branch is up to date with 'origin/main'.
+
+Changes not staged for commit:
+ (use "git add ..." to update what will be committed)
+ (use "git restore ..." to discard changes in working directory)
+ modified: main.cpp
+
+no changes added to commit (use "git add" and/or "git commit -a")
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git add main.cpp
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git add project.cbp
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git status
+On branch main
+Your branch is up to date with 'origin/main'.
+
+Changes to be committed:
+ (use "git restore --staged ..." to unstage)
+ modified: main.cpp
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git commit -m 'code: добавлен вывод произведения'
+[main 779ce84] code: добавлен вывод произведения
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+ Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git log --oneline --decorate --stat
+779ce84 (HEAD -> main) code: добавлен вывод произведения
+ main.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+9a14516 (origin/main, origin/HEAD) build: добавлен .gitignore
+ .gitignore | 3 +++
+ 1 file changed, 3 insertions(+)
+1e31a4c build: добавлено игнорирование файлов
+ main.cpp | 8 +++-----
+ project.cbp | 3 +++
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+22be7f3 build: добавлен вывод разности a и b
+ main.cpp | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+96dfa86 build: добавлен вывод суммы a и b
+ main.cpp | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+6d51e02 build: добавлен файл проекта
+ project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 40 insertions(+)
+28681bd code: заготовка программы
+ main.cpp | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git push
+Enumerating objects: 5, done.
+Counting objects: 100% (5/5), done.
+Delta compression using up to 4 threads
+Compressing objects: 100% (3/3), done.
+Writing objects: 100% (3/3), 408 bytes | 408.00 KiB/s, done.
+Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
+remote: . Processing 1 references
+remote: Processed 1 references in total
+To http://uit.mpei.ru/git/rogozinay/cs-lab02.git
+ 9a14516..779ce84 main -> main
+```
+
+На машине Алисы загрузим изменения, проверим:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git fetch
+remote: Enumerating objects: 5, done.
+remote: Counting objects: 100% (5/5), done.
+remote: Compressing objects: 100% (3/3), done.
+remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
+Unpacking objects: 100% (3/3), 388 bytes | 48.00 KiB/s, done.
+From http://uit.mpei.ru/git/rogozinay/cs-lab02
+ 9a14516..779ce84 main -> origin/main
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* 779ce84 (origin/main) code: добавлен вывод произведения
+* 9a14516 (HEAD -> main) build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+```
+Как можно видеть, ветка main отстает на один коммит от ветки origin/main (версии ветки main из удаленного репозитария под названием origin, то есть на сервере).
+
+Передвинем ветку `main` к скачанной версии:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git pull --ff-only
+error: Your local changes to the following files would be overwritten by merge:
+ main.cpp
+Please commit your changes or stash them before you merge.
+Aborting
+Updating 9a14516..779ce84
+```
+Получили ошибку так как в Code Blocks сделаны случайные изменения на машине Алисы. Git предупреждает нас об этом и подсказывает что нужно либо сделать коммит изменений, либо откат. Выполним откат ненужных изменений для файла `main.cpp` и повторим команду:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* 779ce84 (origin/main) code: добавлен вывод произведения
+* 9a14516 (HEAD -> main) build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git checkout -- main.cpp
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git status
+On branch main
+Your branch is behind 'origin/main' by 1 commit, and can be fast-forwarded.
+ (use "git pull" to update your local branch)
+
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ project.depend
+
+nothing added to commit but untracked files present (use "git add" to track)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git pull --ff-only
+Updating 9a14516..779ce84
+Fast-forward
+ main.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+```
+Выполнено, проверяем ветки:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* 779ce84 (HEAD -> main, origin/main) code: добавлен вывод произведения
+* 9a14516 build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+```
+Делаем тоже самое наоборот:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git commit -a -m 'code: добавлен вывод действий с делением'
+[main ccce871] code: добавлен вывод действий с делением
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git log --oneline --decorate --stat
+ccce871 (HEAD -> main) code: добавлен вывод действий с делением
+ main.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+779ce84 (origin/main, origin/HEAD) code: добавлен вывод произведения
+ main.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+9a14516 build: добавлен .gitignore
+ .gitignore | 3 +++
+ 1 file changed, 3 insertions(+)
+1e31a4c build: добавлено игнорирование файлов
+ main.cpp | 8 +++-----
+ project.cbp | 3 +++
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+22be7f3 build: добавлен вывод разности a и b
+ main.cpp | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+96dfa86 build: добавлен вывод суммы a и b
+ main.cpp | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+6d51e02 build: добавлен файл проекта
+ project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 40 insertions(+)
+28681bd code: заготовка программы
+ main.cpp | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git push
+Enumerating objects: 5, done.
+Counting objects: 100% (5/5), done.
+Delta compression using up to 4 threads
+Compressing objects: 100% (3/3), done.
+Writing objects: 100% (3/3), 437 bytes | 437.00 KiB/s, done.
+Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
+remote: . Processing 1 references
+remote: Processed 1 references in total
+To http://uit.mpei.ru/git/rogozinay/cs-lab02.git
+ 779ce84..ccce871 main -> main
+```
+Далее на машине Алисы загружаем:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git fetch
+remote: Enumerating objects: 5, done.
+remote: Counting objects: 100% (5/5), done.
+remote: Compressing objects: 100% (3/3), done.
+remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
+Unpacking objects: 100% (3/3), 417 bytes | 59.00 KiB/s, done.
+From http://uit.mpei.ru/git/rogozinay/cs-lab02
+ 779ce84..ccce871 main -> origin/main
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* ccce871 (origin/main) code: добавлен вывод действий с делением
+* 779ce84 (HEAD -> main) code: добавлен вывод произведения
+* 9a14516 build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git pull --ff-only
+Updating 779ce84..ccce871
+Fast-forward
+ main.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* ccce871 (HEAD -> main, origin/main) code: добавлен вывод действий с делением
+* 779ce84 code: добавлен вывод произведения
+* 9a14516 build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+```
+Видим что все изменения были загружены, ветки перенесены.
+
+### Разрешение конфликтов правок при совместной работе
+От имени Алисы добавим нахождения максимума из чисел, делаем коммит, отправляем на сервер:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git commit -a -m "code: добавление максимума из чисел"
+[main 28c75ea] code: добавление максимума из чисел
+ 1 file changed, 2 insertions(+)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git status
+On branch main
+Your branch is ahead of 'origin/main' by 1 commit.
+ (use "git push" to publish your local commits)
+
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ project.depend
+
+nothing added to commit but untracked files present (use "git add" to track)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* 28c75ea (HEAD -> main) code: добавление максимума из чисел
+* ccce871 (origin/main) code: добавлен вывод действий с делением
+* 779ce84 code: добавлен вывод произведения
+* 9a14516 build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git push
+Enumerating objects: 5, done.
+Counting objects: 100% (5/5), done.
+Delta compression using up to 4 threads
+Compressing objects: 100% (3/3), done.
+Writing objects: 100% (3/3), 435 bytes | 435.00 KiB/s, done.
+Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
+remote: . Processing 1 references
+remote: Processed 1 references in total
+To http://uit.mpei.ru/git/rogozinay/cs-lab02.git
+ ccce871..28c75ea main -> main
+```
+От имени Боба заходим, делаем коммит смотрим изменения:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git commit -a -m 'code: добавлен вывод минимума'
+[main 26ad6e7] code: добавлен вывод минимума
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/bob/project (main)
+$ git push
+Enumerating objects: 5, done.
+Counting objects: 100% (5/5), done.
+Delta compression using up to 4 threads
+Compressing objects: 100% (3/3), done.
+Writing objects: 100% (3/3), 418 bytes | 418.00 KiB/s, done.
+Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
+remote: . Processing 1 references
+remote: Processed 1 references in total
+To http://uit.mpei.ru/git/rogozinay/cs-lab02.git
+ c50329e..26ad6e7 main -> main
+
+```
+Делаем коммит с выводом минимума от имени Алисы:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git commit -a -m "code: добавление максимума из чисел"
+[main 5d15d1c] code: добавление максимума из чисел
+ 1 file changed, 1 insertion(+)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git push
+To http://uit.mpei.ru/git/rogozinay/cs-lab02.git
+ ! [rejected] main -> main (fetch first)
+error: failed to push some refs to 'http://uit.mpei.ru/git/rogozinay/cs-lab02.git'
+hint: Updates were rejected because the remote contains work that you do
+hint: not have locally. This is usually caused by another repository pushing
+hint: to the same ref. You may want to first integrate the remote changes
+hint: (e.g., 'git pull ...') before pushing again.
+hint: See the 'Note about fast-forwards' in 'git push --help' for details.
+```
+Не удается сделать загрузку на сервер
+Можно видеть, что ветка `main` локального репозитария разошлась с веткой `origin/main`, то есть с веткой `main` на сервере. Алисе нужно переместить свой коммит поверх коммита Боба, то есть поверх origin/main:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git rebase origin/main
+error: cannot rebase: You have unstaged changes.
+error: Please commit or stash them.
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* 5d15d1c (HEAD -> main) code: добавление максимума из чисел
+* 28c75ea (origin/main) code: добавление максимума из чисел
+* ccce871 code: добавлен вывод действий с делением
+* 779ce84 code: добавлен вывод произведения
+* 9a14516 build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+```
+Возникает конфликт:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* 4edc7f7 (HEAD -> main) code: добавление максимума из чисел
+* 5d15d1c code: добавление максимума из чисел
+| * 26ad6e7 (origin/main) code: добавлен вывод минимума
+| * c50329e code: добавлен вывод vминимума
+|/
+* 28c75ea code: добавление максимума из чисел
+* ccce871 code: добавлен вывод действий с делением
+* 779ce84 code: добавлен вывод произведения
+* 9a14516 build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git rebase origin/main
+Auto-merging main.cpp
+CONFLICT (content): Merge conflict in main.cpp
+error: could not apply 5d15d1c... code: добавление максимума из чисел
+hint: Resolve all conflicts manually, mark them as resolved with
+hint: "git add/rm ", then run "git rebase --continue".
+hint: You can instead skip this commit: run "git rebase --skip".
+hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
+Could not apply 5d15d1c... code: добавление максимума из чисел
+```
+В итоге место конфликта отмечено прямо в коде Code Blocks:
+```
+<<<<<<< HEAD
+ min(a, b);
+=======
+ max(a, b);
+>>>>>>> 5d15d1c (code: добавление максимума из чисел)
+```
+Вывод истории имеет желаемый вид:
+Sublime Text:
+```
+# Please enter the commit message for your changes. Lines starting
+# with '#' will be ignored, and an empty message aborts the commit.
+#
+# interactive rebase in progress; onto 26ad6e7
+# Last command done (1 command done):
+# pick 5d15d1c code: добавление максимума из чисел
+# Next command to do (1 remaining command):
+# pick 4edc7f7 code: добавление максимума из чисел
+# You are currently rebasing branch 'main' on '26ad6e7'.
+#
+# Changes to be committed:
+# modified: main.cpp
+#
+# Untracked files:
+# project.depend
+#
+```
+Git:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main|REBASE 1/2)
+$ git rebase --continue
+[detached HEAD a557bfe] code: добавление максимума из чисел
+ 1 file changed, 4 insertions(+)
+dropping 4edc7f7de303dddf99d1c89a1c3c002d14b982df code: добавление максимума из чисел -- patch
+contents already upstream
+Successfully rebased and updated refs/heads/main.
+```
+
+### Использование веток
+Создадим новую ветку, переключимся на нее:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git branch double
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git checkout double
+Switched to branch 'double'
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (double)
+```
+Посмотрим изменения, переключимся в `main`:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (double)
+$ git commit -a -m 'code: изменен тип на double'
+On branch double
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ project.depend
+
+nothing added to commit but untracked files present (use "git add" to track)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (double)
+$ git status
+On branch double
+Changes not staged for commit:
+ (use "git add ..." to update what will be committed)
+ (use "git restore ..." to discard changes in working directory)
+ modified: main.cpp
+
+Untracked files:
+ (use "git add ..." to include in what will be committed)
+ project.depend
+
+no changes added to commit (use "git add" and/or "git commit -a")
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (double)
+$ git commit -a -m 'code: изменен тип на double'
+[double fe86d2f] code: изменен тип на double
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (double)
+$ git log --oneline --decorate --all --graph
+* fe86d2f (HEAD -> double) code: изменен тип на double
+* 9d3e654 (origin/main, main) code: добавлен вывод минимума
+* a557bfe code: добавление максимума из чисел
+* 26ad6e7 code: добавлен вывод минимума
+* c50329e code: добавлен вывод vминимума
+* 28c75ea code: добавление максимума из чисел
+* ccce871 code: добавлен вывод действий с делением
+* 779ce84 code: добавлен вывод произведения
+* 9a14516 build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (double)
+$ git checkout main
+Switched to branch 'main'
+Your branch is up to date with 'origin/main'.
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* fe86d2f (double) code: изменен тип на double
+* 9d3e654 (HEAD -> main, origin/main) code: добавлен вывод минимума
+* a557bfe code: добавление максимума из чисел
+* 26ad6e7 code: добавлен вывод минимума
+* c50329e code: добавлен вывод vминимума
+* 28c75ea code: добавление максимума из чисел
+* ccce871 code: добавлен вывод действий с делением
+* 779ce84 code: добавлен вывод произведения
+* 9a14516 build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git fetch
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* fe86d2f (double) code: изменен тип на double
+* 9d3e654 (HEAD -> main, origin/main) code: добавлен вывод минимума
+* a557bfe code: добавление максимума из чисел
+* 26ad6e7 code: добавлен вывод минимума
+* c50329e code: добавлен вывод vминимума
+* 28c75ea code: добавление максимума из чисел
+* ccce871 code: добавлен вывод действий с делением
+* 779ce84 code: добавлен вывод произведения
+* 9a14516 build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+```
+Загрузим изменения в ветку `main` посмотрим результат:
+```
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git fetch
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* fe86d2f (double) code: изменен тип на double
+* 9d3e654 (HEAD -> main, origin/main) code: добавлен вывод минимума
+* a557bfe code: добавление максимума из чисел
+* 26ad6e7 code: добавлен вывод минимума
+* c50329e code: добавлен вывод vминимума
+* 28c75ea code: добавление максимума из чисел
+* ccce871 code: добавлен вывод действий с делением
+* 779ce84 code: добавлен вывод произведения
+* 9a14516 build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git merge double
+Updating 9d3e654..fe86d2f
+Fast-forward
+ main.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git push
+Enumerating objects: 5, done.
+Counting objects: 100% (5/5), done.
+Delta compression using up to 4 threads
+Compressing objects: 100% (3/3), done.
+Writing objects: 100% (3/3), 373 bytes | 373.00 KiB/s, done.
+Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
+remote: . Processing 1 references
+remote: Processed 1 references in total
+To http://uit.mpei.ru/git/rogozinay/cs-lab02.git
+ 9d3e654..fe86d2f main -> main
+
+Артем@DESKTOP-FNVURBO MINGW64 ~/project/lab02/alice/project (main)
+$ git log --oneline --decorate --all --graph
+* fe86d2f (HEAD -> main, origin/main, double) code: изменен тип на double
+* 9d3e654 code: добавлен вывод минимума
+* a557bfe code: добавление максимума из чисел
+* 26ad6e7 code: добавлен вывод минимума
+* c50329e code: добавлен вывод vминимума
+* 28c75ea code: добавление максимума из чисел
+* ccce871 code: добавлен вывод действий с делением
+* 779ce84 code: добавлен вывод произведения
+* 9a14516 build: добавлен .gitignore
+* 1e31a4c build: добавлено игнорирование файлов
+* 22be7f3 build: добавлен вывод разности a и b
+* 96dfa86 build: добавлен вывод суммы a и b
+* 6d51e02 build: добавлен файл проекта
+* 28681bd code: заготовка программы
+```
+Git показывает что все изменения из ветки `double` синхронизованы.
\ No newline at end of file