Отчет по лабораторной работе № 2 "Система контроля версий Git"

Выполнил: Гладкий М.С.
Группа:   А-02-23
Проверил: 

Примечание: работа выполнялась на Windows.

1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02
$

2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто:

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02
$ ls

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02
$

3. Создал каталоги Алисы и Боба, создал каталог "project",
изучил команду "cd" в процессе:

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02
$ mkdir alice

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02
$ mkdir bob

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02
$ cd alice

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice
$ cd ..

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02
$ cd alice

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice
$ mkdir project

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice
$ ls
project/

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice
$ cd project

4. Инициализировал репозитарий:
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/gladm/Desktop/lab02/alice/project/.git/

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (master)
$


Git создал ветку под названием master, что видно в приглашении терминала.
Я принял решение менять имя ветки.

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (master)
$  git branch -m main

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$
 
5.Настроим репозитарий Алисы, чтобы коммиты были от ее имени:

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git config  user.name 'Alice (GladkijMS)'

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git config  user.email 'GladkyMS@mpei.ru'

6.Создал проект в репозитарии Алисы:

Project title: project
Folder to create project in: C:\users\gladm\desktop\lab02\alice
Project filename: project.sln
Resulting filename: C:\users\gladm\desktop\lab02\alice\project\project.sln

7.Посмотрим сосотояние рабочей копии:
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git status
On branch main

No commits yet # В главной ветке нет коммитов

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .vs/
        main.cpp
        project.sln
        project.vcxproj
        project.vcxproj.filters
        project.vcxproj.user

nothing added to commit but untracked files present (use "git add" to track)
#файлы присутствуют в репозитории но никак не взаимодействуют с git-ом.

8. Заносим main.cpp под git:

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git add main.cpp

9.Еще раз просмотрим состояние рабочей копии:

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git status
On branch main

No commits yet # В данный момент в главной ветке нет зафиксированных изменений  

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   main.cpp # изменения которые должны быть зафиксированны 

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .vs/
        project.sln
        project.vcxproj
        project.vcxproj.filters
        project.vcxproj.user
# файлы которые находятся в репозитории но не под контролем git 

10. Выполним коммит с файлом main.cpp и коротким сообщением:
 gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git commit -m 'code: заготовка программы'
[main (root-commit) 9c2a6ac] code: ╨╖╨░╨│╨╛╤В╨╛╨▓╨║╨░ ╨┐╤А╨╛╨│╤А╨░╨╝╨╝╤Л
 1 file changed, 20 insertions(+)
 create mode 100644 main.cpp #Закоммитили main.cpp в главной ветке с коротким сообщением, изменен один файл с 20+ строчками в нем . create mod говорит что в git репозитории создан файл , 100644 - что это просто файл с названием main.cpp

11.Добавим файл project.sln в индекс и сделаем коммит с ним:

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git add project.sln

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   project.sln

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .vs/
        project.vcxproj
        project.vcxproj.filters
        project.vcxproj.user


gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git commit -m 'build: add project file'
[main f212263] build: add project file
 1 file changed, 31 insertions(+)
 create mode 100644 project.sln

12.Добавим оставшиеся файлы проекта в индекс и сделаем коммит к ним:

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git add project.vcxproj

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git add project.vcxproj.filters

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git add project.vcxproj.user

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   project.vcxproj
        new file:   project.vcxproj.filters
        new file:   project.vcxproj.user
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .vs/

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git commit -m 'build: add others project files'
[main 46341ef] build: add others project files
 3 files changed, 58 insertions(+)
 create mode 100644 project.vcxproj
 create mode 100644 project.vcxproj.filters
 create mode 100644 project.vcxproj.user


13.Заменим тело функции main():
cout << "Enter A and B: ";
int a, b;
cin >> a >> b;

14.Проверяем состояние репозитория:
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git status
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   main.cpp

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .vs/

no changes added to commit (use "git add" and/or "git commit -a")
#git пишет что файл main.cpp был изменен, но изменения в файле не будут зафиксированны в ветке пока он не занесен в изменения ветки и закоммичен (а при добавлении нового файла git сразу добавлял  его в изменения ветки) 

15.Выберем файлы, изменения которых должны войти в коммит, затем сделаем коммит:

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git add main.cpp

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git commit -m "input: a and b"
[main 041f47b] input: a and b
 1 file changed, 5 insertions(+), 16 deletions(-)

16.Добавим в программу вывод суммы a и b :

std::cout << "A + B = " << a + b << '\n';

17.Добавим в индекс все изменения, затем сделаем коммит:

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git add -u

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git commit -m "Summ: output a+b"
[main 349f409] Summ: output a+b
 1 file changed, 1 insertion(+)

18.Добавить в программу вывод разности a и b
cout << "A + B = " << a + b << '\n'
     << "A - B = " << a - b << '\n';
19.Добавим все изменения в индекс и сделаем коммит в один шаг:

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git commit -a -m "Diff:output a-b"
[main 6dfcc43] Diff:output a-b
 1 file changed, 2 insertions(+), 1 deletion(-)

20.Создадим файл .gitignore и пропишем в него  пути /bin /obj /.vs :

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ touch .gitignore
#создали пустой файл 
 пропишем в него правила 
/bin
/obj
/.vs

запишем .gitignore в коммит 
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git add .gitignore

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git commit -m 'git:skip rules  '
[main b40e4b5] git:skip rules
 1 file changed, 3 insertions(+)
 create mode 100644 .gitignore

# проверим пропуск папок bin obj .vs

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git status
On branch main
nothing to commit, working tree clean

21.Работа с журналов репозитория 

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git log --oneline --decorate
b40e4b5 (HEAD -> main) git:skip rules
1a83291 update compiler paths
6dfcc43 Diff:output a-b
349f409 Summ: output a+b
041f47b input: a and b
23065ea .vs delete from git
46341ef build: add others project files
f212263 build: add project file
9c2a6ac code: заготовка программы
#показывает коммиты компактно (--oneline), а также показывает ссылки, концы веток и тэги (--decorate).

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git log --oneline --decorate  --all --graph
* b40e4b5 (HEAD -> main) git:skip rules
* 1a83291 update compiler paths
* 6dfcc43 Diff:output a-b
* 349f409 Summ: output a+b
* 041f47b input: a and b
* 23065ea .vs delete from git
* 46341ef build: add others project files
* f212263 build: add project file
* 9c2a6ac code: заготовка программы
#делает то же для всех веток (--all), причем коммиты отображаются в терминале в виде дерева (--graph).

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git log --stat
commit b40e4b5022767dc196b29bdfd79abfb15998c736 (HEAD -> main)
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 18:52:11 2024 +0300

    git:skip rules

 .gitignore | 3 +++
 1 file changed, 3 insertions(+)

#git log --stat для последнего коммита описывает ветку , время , автора и почту , описание коммита , для чего применялся коммит , сколько файлов добавилось , и сколько изменений было совершено 


gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git log --grep "build"
commit 46341ef1db42e18261fb68aa2d7b96819cd1533b
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 17:27:39 2024 +0300

    build: add others project files

commit f2122637bceef4f2e2d3d2d3be782aa379f2a5b5
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 17:21:41 2024 +0300

    build: add project file
# коммиты затрагивающие build 

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git log -- project.sln
commit f2122637bceef4f2e2d3d2d3be782aa379f2a5b5
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 17:21:41 2024 +0300

    build: add project file
# коммиты затрагивающие project.sln

22.Просмотр предпоследнего коммита 
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git show HEAD~1
commit 1a8329166d3ecf61f0cfba9e5186cfd730704c9a
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 18:43:20 2024 +0300

    update compiler paths

diff --git a/project.vcxproj b/project.vcxproj
index cda804f..788e840 100644
--- a/project.vcxproj
+++ b/project.vcxproj
@@ -70,6 +70,22 @@
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>bin/$(Configuration)/$(Platform)/</OutDir>
+    <IntDir>obj/$(Configuration)/$(Platform)/</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>bin/$(Configuration)/$(Platform)/</OutDir>
+    <IntDir>obj/$(Configuration)/$(Platform)/</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>bin/$(Configuration)/$(Platform)/</OutDir>
+    <IntDir>obj/$(Configuration)/$(Platform)/</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>bin/$(Configuration)/$(Platform)/</OutDir>
+    <IntDir>obj/$(Configuration)/$(Platform)/</IntDir>
+  </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
23.Просмотр изменений
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git diff
diff --git a/main.cpp b/main.cpp
index ecc823b..5122aa9 100644
--- a/main.cpp
+++ b/main.cpp
@@ -6,6 +6,6 @@ int main()
        int a, b;
        std::cin >> a >> b;
        std::cout << "A + B = " << a + b << '\n'
-               << "A - B = " << a - b << '\n';
-
+               << "A - B = " << a - b << '\n'
+               << "A * B = " << a * b << '\n';
 }

#показывает  изменений от указанного коммита до последнего, включая изменения в рабочей копии
где убавилось , где добавилось  и что добавилось\ убавилось

24.изменения между самым первым коммитом и коммитом, добавляющим вывод разности

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git diff HEAD~2 HEAD~8
diff --git a/main.cpp b/main.cpp
index ecc823b..a60f2ae 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,11 +1,20 @@
-#include <iostream>
+// project.cpp : Этот файл содержит функцию "main". Здесь начинается и заканччивается выполнение программы.
+//
+
+#include <iostream>

 int main()
 {
-       std::cout << "Enter A and B:";
-       int a, b;
-       std::cin >> a >> b;
-       std::cout << "A + B = " << a + b << '\n'
-               << "A - B = " << a - b << '\n';
-
+    std::cout << "Hello World!\n";
 }
+
+// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
+// Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
+
+// Советы по началу работы
+//   1. В окне обозревателя решений можно добавлять файлы и управлять ими.
+//   2. В окне Team Explorer можно подключиться к системе управления версиями.
+//   3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
+//   4. В окне "Список ошибок" можно просматривать ошибки.
+//   5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемен

25. создам ключ 

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/gladm/.ssh/id_ed25519):
Created directory '/c/Users/gladm/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/gladm/.ssh/id_ed25519
Your public key has been saved in /c/Users/gladm/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:u2SrNi2gzpgniYeLZIAwslwPqaHqRzkyg8Ba7fj9fDM gladm@Maxgl
The key's randomart image is:
+--[ED25519 256]--+
|                 |
|    .            |
|=. =             |
|B+= +            |
|O+ o..  S        |
|=+.+o    .       |
|o==o.o .+        |
|X++.. =+.oE      |
|=B+  ..==. o     |
+----[SHA256]-----+

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ eval $(ssh-agent -s)
Agent pid 1846
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ ssh-add
Identity added: /c/Users/gladm/.ssh/id_ed25519 (gladm@Maxgl)
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJo0eXAIS3YpKWjrFhYjgxBZRbzi3uXhFTGg0Atkgbj4 gladm@Maxgl

26.подключусь к онлайн репозиторию 
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git remote add origin git@uit.mpei.ru:GladkyMS/cs-lab02.git
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git push -u origin main
The authenticity of host 'uit.mpei.ru (10.1.6.13)' can't be established.
ED25519 key fingerprint is SHA256:Q5w0UKEzQKA3J6NyMtjwCLvtAykoxdugIXjx6NwU4NA.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'uit.mpei.ru' (ED25519) to the list of known hosts.
Enumerating objects: 50, done.
Counting objects: 100% (50/50), done.
Delta compression using up to 12 threads
Compressing objects: 100% (43/43), done.
Writing objects: 100% (50/50), 10.37 MiB | 3.66 MiB/s, done.
Total 50 (delta 15), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:GladkyMS/cs-lab02.git
 * [new branch]      main -> main
branch 'main' set up to track 'origin/main'.

27. копирую репозиторий на "машину боба"
gladm@Maxgl MINGW64 ~/Desktop/lab02/bob
$ git clone git@uit.mpei.ru:GladkyMS/cs-lab02.git project
Cloning into 'project'...
remote: Enumerating objects: 47, done.
remote: Counting objects: 100% (47/47), done.
remote: Compressing objects: 100% (40/40), done.
remote: Total 47 (delta 13), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (47/47), 10.37 MiB | 1.52 MiB/s, done.
Resolving deltas: 100% (13/13), done.

gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.name "Bob (GladkyMS)"

gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.email "GladkyMS@mpei.ru"



28.делаем в проекте произведение от имени боба
 << "A * B = " << a * b << '\n';

gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -a -m 'Mult: a*b'
[main 52b3161] Mult: a*b
 1 file changed, 2 insertions(+), 1 deletion(-)

gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log
commit 52b3161af16331d014c9c1c0d8657a258f25871d (HEAD -> main)
Author: Bob (GladkyMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 21:53:06 2024 +0300

    Mult: a*b


29.отправляем на сервер коммит
gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 323 bytes | 323.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:GladkyMS/cs-lab02.git
   b40e4b5..52b3161  main -> main

30. принимаем коммит на алисе
gladm@Maxgl MINGW64 /c/users/gladm/desktop/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 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 303 bytes | 20.00 KiB/s, done.
From uit.mpei.ru:GladkyMS/cs-lab02
   b40e4b5..52b3161  main       -> origin/main

убеждаемся что в рабочей копии не произошло изменений 
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 52b3161 (origin/main) Mult: a*b
* b40e4b5 (HEAD -> main) git:skip rules
* 1a83291 update compiler paths
* 6dfcc43 Diff:output a-b
* 349f409 Summ: output a+b
* 041f47b input: a and b
* 23065ea .vs delete from git
* 46341ef build: add others project files
* f212263 build: add project file
* 9c2a6ac code: заготовка программы

32. двигаем main  к скачанной версии 
 
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git pull --ff-only
Updating b40e4b5..52b3161
Fast-forward
 main.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 52b3161 (HEAD -> main, origin/main) Mult: a*b
* b40e4b5 git:skip rules
* 1a83291 update compiler paths
* 6dfcc43 Diff:output a-b
* 349f409 Summ: output a+b
* 041f47b input: a and b
* 23065ea .vs delete from git
* 46341ef build: add others project files
* f212263 build: add project file
* 9c2a6ac code: заготовка программы

33.сделаем деление от алисы и отправим его на сервер 
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git commit -a -m "div:a/b"
[main b0e6698] div:a/b
 1 file changed, 2 insertions(+), 1 deletion(-)

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 323 bytes | 323.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:GladkyMS/cs-lab02.git
   52b3161..b0e6698  main -> main

35.получаем коммит с сервера для боба 
gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/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 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 303 bytes | 37.00 KiB/s, done.
From uit.mpei.ru:GladkyMS/cs-lab02
   52b3161..b0e6698  main       -> origin/main

gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* b0e6698 (origin/main, origin/HEAD) div:a/b
* 52b3161 (HEAD -> main) Mult: a*b
* b40e4b5 git:skip rules
* 1a83291 update compiler paths
* 6dfcc43 Diff:output a-b
* 349f409 Summ: output a+b
* 041f47b input: a and b
* 23065ea .vs delete from git
* 46341ef build: add others project files
* f212263 build: add project file
* 9c2a6ac code: заготовка программы

gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git pull --ff-only
Updating 52b3161..b0e6698
Fast-forward
 main.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

 gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* b0e6698 (HEAD -> main, origin/main, origin/HEAD) div:a/b
* 52b3161 Mult: a*b
* b40e4b5 git:skip rules
* 1a83291 update compiler paths
* 6dfcc43 Diff:output a-b
* 349f409 Summ: output a+b
* 041f47b input: a and b
* 23065ea .vs delete from git
* 46341ef build: add others project files
* f212263 build: add project file
* 9c2a6ac code: заготовка программы

36. сделаем поиск максимума от алисы и отправим на сервер 

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git commit -a -m "max: max(a,b)"
[main 91d1f76] max: max(a,b)
 1 file changed, 2 insertions(+), 1 deletion(-)

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 342 bytes | 342.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:GladkyMS/cs-lab02.git
   b0e6698..91d1f76  main -> main

37. сделаем минимум от боба и попытаемся отправить на сервер 
gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -a -m "min:min(a,b)"
[main aad564a] min:min(a,b)
 1 file changed, 2 insertions(+), 1 deletion(-)


gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
To uit.mpei.ru:GladkyMS/cs-lab02.git
 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'uit.mpei.ru:GladkyMS/cs-lab02.git'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.


38.загрузим для боба коммиты и проверим историю веток

gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/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 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 322 bytes | 24.00 KiB/s, done.
From uit.mpei.ru:GladkyMS/cs-lab02
   b0e6698..91d1f76  main       -> origin/main

gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* aad564a (HEAD -> main) min:min(a,b)
| * 91d1f76 (origin/main, origin/HEAD) max: max(a,b)
|/
* b0e6698 div:a/b
* 52b3161 Mult: a*b
* b40e4b5 git:skip rules
* 1a83291 update compiler paths
* 6dfcc43 Diff:output a-b
* 349f409 Summ: output a+b
* 041f47b input: a and b
* 23065ea .vs delete from git
* 46341ef build: add others project files
* f212263 build: add project file
* 9c2a6ac code: заготовка программы

39.перемещаем коммит боба повер коммита алисы

gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git rebase origin/main
Auto-merging main.cpp
CONFLICT (content): Merge conflict in main.cpp
error: could not apply aad564a... min:min(a,b)
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", 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 aad564a... min:min(a,b)

gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
$ git log --oneline --decorate --all --graph
* aad564a (main) min:min(a,b)
| * 91d1f76 (HEAD, origin/main, origin/HEAD) max: max(a,b)
|/
* b0e6698 div:a/b
* 52b3161 Mult: a*b
* b40e4b5 git:skip rules
* 1a83291 update compiler paths
* 6dfcc43 Diff:output a-b
* 349f409 Summ: output a+b
* 041f47b input: a and b
* 23065ea .vs delete from git
* 46341ef build: add others project files
* f212263 build: add project file
* 9c2a6ac code: заготовка программы
 ничего не получилось 
 удаляем метки конфликта в коде и продолжаем прерваную операцию rebase

gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$git rebase --continue
# 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 91d1f76
# Last command done (1 command done):
#    pick aad564a min:min(a,b)
# No commands remaining.
# You are currently rebasing branch 'main' on '91d1f76'.
#
# Changes to be committed:
#       modified:   main.cpp
#
[detached HEAD 96e30c6] commit
 1 file changed, 2 insertions(+), 1 deletion(-)
Successfully rebased and updated refs/heads/main.


gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 96e30c6 (HEAD -> main) commit
* 91d1f76 (origin/main, origin/HEAD) max: max(a,b)
* b0e6698 div:a/b
* 52b3161 Mult: a*b
* b40e4b5 git:skip rules
* 1a83291 update compiler paths
* 6dfcc43 Diff:output a-b
* 349f409 Summ: output a+b
* 041f47b input: a and b
* 23065ea .vs delete from git
* 46341ef build: add others project files
* f212263 build: add project file
* 9c2a6ac code: заготовка программы

отправим на сервер 
gladm@Maxgl MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 339 bytes | 339.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:GladkyMS/cs-lab02.git
   91d1f76..96e30c6  main -> main

40.создаем новую ветку на алисе и переключаемся на нее

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git branch double

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (double)
$

41. меняем тип переменных на double и коммитим
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (double)
$ git commit -a -m "double: double a,b"
[double ebc8dbe] double: double a,b
 1 file changed, 1 insertion(+), 1 deletion(-)

42. переключаемся на main ветку и синхронизируемся с сервером 
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (double)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git pull
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 319 bytes | 17.00 KiB/s, done.
From uit.mpei.ru:GladkyMS/cs-lab02
   91d1f76..96e30c6  main       -> origin/main
Updating 91d1f76..96e30c6
Fast-forward
 main.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

43. сливаем ветку double в main
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (double)
$ git merge double
On branch double
Changes not staged for commit:
Merge branch 'double'

история 
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git log
commit 4e5efed7392bdcb92c7610a9615a020bccbcabee (HEAD -> main)
Merge: 96e30c6 ebc8dbe
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 22:47:24 2024 +0300

    Merge branch 'double'
    double # Please enter a commit message to explain why this merge is necessary,

commit ebc8dbe587a9fce1d09434c2315506449194293a (double)
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 22:41:21 2024 +0300

    double: double a,b

commit 96e30c65d6d7d84305867566417f727961de983c (origin/main)
Author: Bob (GladkyMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 22:17:58 2024 +0300

    commit

    min:min(a,b)
    t

44. отправлем изменения на сервер 
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 12 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 639 bytes | 639.00 KiB/s, done.
Total 6 (delta 4), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:GladkyMS/cs-lab02.git
   96e30c6..4e5efed  main -> main

45. история веток 
gladm@Maxgl MINGW64 /c/users/gladm/desktop/lab02/alice/project (main)
$ git log
commit 4e5efed7392bdcb92c7610a9615a020bccbcabee (HEAD -> main, origin/main)
Merge: 96e30c6 ebc8dbe
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 22:47:24 2024 +0300

    Merge branch 'double'
    double # Please enter a commit message to explain why this merge is necessary,

commit ebc8dbe587a9fce1d09434c2315506449194293a (double)
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 22:41:21 2024 +0300

    double: double a,b

commit 96e30c65d6d7d84305867566417f727961de983c
Author: Bob (GladkyMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 22:17:58 2024 +0300

    commit

    min:min(a,b)
    t

commit 91d1f7667b4e4d10f3787e3a9710c54b52a003ea
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 22:15:13 2024 +0300

    max: max(a,b)

commit b0e6698c93af78b9fcc52f0ab999b61721568d5a
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 22:05:32 2024 +0300

    div:a/b

commit 52b3161af16331d014c9c1c0d8657a258f25871d
Author: Bob (GladkyMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 21:53:06 2024 +0300

    Mult: a*b

commit b40e4b5022767dc196b29bdfd79abfb15998c736
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 18:52:11 2024 +0300

    git:skip rules

commit 1a8329166d3ecf61f0cfba9e5186cfd730704c9a
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 18:43:20 2024 +0300

    update compiler paths

commit 6dfcc43b4464d667fce20cbaac1f8275951ece21
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 18:27:00 2024 +0300

    Diff:output a-b

commit 349f4093f8a0cd183667e7dfd9dbffa48395828b
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 18:24:08 2024 +0300

    Summ: output a+b

commit 041f47bed758745588952e0b81a2046c6d4d45cc
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 18:20:17 2024 +0300

    input: a and b

commit 23065eae4ec2c4869bd6fcf60b077a8b506b0c49
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 17:47:25 2024 +0300

    .vs delete from git

commit 46341ef1db42e18261fb68aa2d7b96819cd1533b
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 17:27:39 2024 +0300

    build: add others project files

commit f2122637bceef4f2e2d3d2d3be782aa379f2a5b5
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 17:21:41 2024 +0300

    build: add project file

commit 9c2a6ac98b8eb80d01a826671cfec3bad1bbe26c
Author: Alice (GladkijMS) <GladkyMS@mpei.ru>
Date:   Sun Mar 24 17:06:38 2024 +0300

    code: заготовка программы