mkdir alice
mkdir bob

cd alice

mkdir project
cd ..
cd alice
cd project

git init

git branch -m main

git config user.name 'Alice (SmirnovFA)'
git config user.email 'mr.fedush@gmail.com'

Запустил CodeBlocks и создал проект в репозитарии Алисы:
lab02
├── alice
│   └── project  <--------- текущий рабочий каталог
│       ├── .git <--------- создан командой "git init"
│       ├── bin  <--------- создан CodeBlocks при сборке
│       ├── obj  <--------- (то же самое)
│       ├── main.cpp    <-- код программы
│       └── project.cbp <-- файл проекта
└── bob

git status
On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	main.cpp
	project.cbp

nothing added to commit but untracked files present (use "git add" to track)

git add main.cpp

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)
	project.cbp

git commit -m 'code: заготовка программы'
[main (root-commit) 08b65da] code: заготовка программы
 1 file changed, 9 insertions(+)
 create mode 100644 main.cpp

git add project.cbp
git commit -m 'build добавлен файл проекта'
[main f2b01d7] build добавлен файл проекта
 1 file changed, 38 insertions(+)
 create mode 100644 project.cbp

Изменили main в main.cpp

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

no changes added to commit (use "git add" and/or "git commit -a")

git add -u
git commit -m "code изменение main"
[main 434bd16] code изменение main
 1 file changed, 1 insertion(+)

Создание файла .gitignore

git status
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore
	bin/


Записываем в него /bin

git status
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore
	

Аналогично с /obj

git add .gitignore
git commit -m "git добавление gitignore"
[main 6eec99e] git добавление gitignore
 1 file changed, 2 insertions(+)
 create mode 100644 .gitignore
git status
On branch main
nothing to commit, working tree clean

git log --oneline --decorate --all --graph
* 6eec99e (HEAD -> main) git добавление gitignore
* 615152d code изменение main
* 434bd16 code изменение main
* eb2d331 code изменение main
* f2b01d7 build добавлен файл проекта
* 08b65da code: заготовка программы

Нашел коммиты затрагивающие project.cbp и затрагивающие build 
git log -- project.cbp
commit f2b01d7030bf74af5af0cdd8f0ec5aca74a25151
Author: Alice (IyevlevMD) <iyevlevmikd@mpei.ru>
Date:   Wed Mar 27 10:03:57 2024 +0300

    build добавлен файл проекта

git log --grep "build"
commit f2b01d7030bf74af5af0cdd8f0ec5aca74a25151
Author: Alice (IyevlevMD) <iyevlevmikd@mpei.ru>
Date:   Wed Mar 27 10:03:57 2024 +0300

git remote add origin git@uit.mpei.ru:IyevlevMikD/cs-lab02.git
git push -u origin main !!!! НЕ РАБОТАЕТТТТТТТ
    build добавлен файл проекта

Просмотрел предпоследний коммит тремя способами:
git show HEAD~1
commit 615152d3d06be5a6a6a2d8f967d8821c69706cbf
Author: Alice (IyevlevMD) <iyevlevmikd@mpei.ru>
Date:   Wed Mar 27 10:11:20 2024 +0300

    code изменение main

diff --git a/main.cpp b/main.cpp
index cc9962c..fd75bba 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,5 +7,6 @@ int main()
     cout << "Enter A and B: ";
     int a, b;
     cin >> a >> b;
-    cout << a << b;
+    cout << "A + B = " << a + b << '\n'
+     << "A - B = " << a - b << '\n';
 }
 
git show 615152d3d06be5a6a6a2d8f967d8821c69706cbf

git show main~1

Просмотрел изменения между самым первым коммитом и коммитом, добавляющим вывод разности
git log --oneline --decorate --all --graph
* 615152d (HEAD -> main) code изменение main
* 434bd16 code изменение main
* eb2d331 code изменение main
* f2b01d7 build добавлен файл проекта
* 08b65da code: заготовка программы
git diff HEAD~1
diff --git a/main.cpp b/main.cpp
index cc9962c..fd75bba 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,5 +7,6 @@ int main()
     cout << "Enter A and B: ";
     int a, b;
     cin >> a >> b;
-    cout << a << b;
+    cout << "A + B = " << a + b << '\n'
+     << "A - B = " << a - b << '\n';
 }
git diff HEAD~1 HEAD~4
diff --git a/main.cpp b/main.cpp
index cc9962c..b4392ec 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,8 +4,6 @@ using namespace std;
 
 int main()
 {
-    cout << "Enter A and B: ";
-    int a, b;
-    cin >> a >> b;
-    cout << a << b;
+    cout << "Hello world!" << endl;
+    return 0;
 }
diff --git a/project.cbp b/project.cbp
deleted file mode 100644
index c4697a9..0000000
--- a/project.cbp
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-<CodeBlocks_project_file>

Добавление умножения А и В в 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

no changes added to commit (use "git add" and/or "git commit -a")
kotopathy@kotopathy-aspire:~/lab02/alice/project$ git add main.cpp
kotopathy@kotopathy-aspire:~/lab02/alice/project$ git commit -m 'code: изменение main'
[main 9696d4d] code: изменение main
 1 file changed, 2 insertions(+), 1 deletion(-)

git reset --hard HEAD~1

// you may type whatever you want

git checkout HEAD -- main.cpp

Скопировал открытый ключ и добавил в список открытых ключей своей учетной записи.

Отправил проект на сервер через HTTP

cd ..
cd ..
cd bob


git clone http://uit.mpei.ru/git/IyevlevMikD/cs-lab02.git project

git config user.name 'Bob (SmirnovFA)'                               
git config user.email 'mr.fedush@gmail.com'

// << "(BOB) A * B = " << a * b << '\n';

cd ..
cd ..
cd alice
cd project

git fetch

git log --oneline --decorate --all --graph
* d6218ae (HEAD -> main, origin/main, origin/HEAD) first commit
* 9696d4d code: изменение main
* d171837 git: добавление gitignore
* 615152d code изменение main
* 434bd16 code изменение main
* eb2d331 code изменение main
* f2b01d7 build добавлен файл проекта
* 08b65da code: заготовка программы

git pull --ff-only
Already up to date.

«От имени Алисы» добавил в программу печать деления, сделал коммит, отправил его на сервер и получил новую версию «на машине Боба»

// << "(BOB) A * B = " << a * b << '\n';

cd ..
cd ..
cd bob
cd project

git config user.name 'Bob (IyevlevMikD)'                               
git config user.email 'IyevlevMikD@mpei.ru'

// << "(ALICE) A * B = " << a * b << '\n';

cd ..
cd ..
cd alice
cd project

git add main.cpp
git commit -m "code: заготовка программы"
[main e015649] code: заготовка программы
 1 file changed, 1 insertion(+), 1 deletion(-)
git push
Username for 'http://uit.mpei.ru': IyevlevMikD
Password for 'http://IyevlevMikD@uit.mpei.ru': 
cd .. 
cd ..
cd bob
cd project

git fetch

git log --oneline --decorate --all --graph

git pull --ff-only

cd ..
cd ..
cd alice
cd project

git config user.name 'Alice (IyevlevMikD)'                               
git config user.email 'IyevlevMikD@mpei.ru'

// cout << "A + B = " << a + b << '\n'
//   << "A - B = " << a - b << '\n'
//   << "A * B = " << a * b << '\n'
//   << "A / B = " << a / b << '\n';

git add main.cpp
git commit -m "code: общий код"
[main 1c7dc2f] code: общий код
 1 file changed, 1 insertion(+), 1 deletion(-)
 
cd ..
cd ..
cd bob
cd project

git add main.cpp
git commit -m "code: изменен"
git push

cd ..
cd ..
cd alice
cd project

Код для Алисы переписан.

git add main.cpp
git commit -m "code: добавлена функция максимума"
git push

cd .. 
cd ..
cd bob
cd project

git config user.name 'Bob (IyevlevMikD)'                               
git config user.email 'IyevlevMikD@mpei.ru'

Код для Боба переписан.

git add main.cpp
git commit -m "code: добавлена функция минимума"
git fetch

git rebase origin/main
git rebase --continue

//
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    cout << "Enter A and B: ";
    float a, b;
<<<<<<< HEAD
    float max;
=======
    float min;
>>>>>>> d02294f (code: добавлен минимум)
    cin >> a >> b;
    cout << "A + B = " << a + b << '\n'
     << "A - B = " << a - b << '\n'
     << "A * B = " << a * b << '\n'
     << "A / B = " << a / b << '\n';
     vector<float> c {a+b, a-b, a*b, a/b};
<<<<<<< HEAD
     max = a+b;
     for (const int& i : c) {
        if (i > max) {
            max = i;
        }
     }
     cout << max;
=======
     min = a+b;
     for (const int& i : c) {
        if (i < min) {
            min = i;
        }
     }
     cout << min;
>>>>>>> d02294f (code: добавлен минимум)
}
//

git add main.cpp
git rebase --continue

[detached HEAD 4470938] code: добавлен минимум
 1 file changed, 9 insertions(+), 1 deletion(-)
Successfully rebased and updated refs/heads/main.

git push

git branch double
git checkout double

git add main.cpp
git commit -m "code: заменено на double"

git checkout 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), 362 bytes | 362.00 KiB/s, done.
From http://uit.mpei.ru/git/IyevlevMikD/cs-lab02
   83be200..4470938  main       -> origin/main

git merge double
Updating 83be200..82b3e8b
Fast-forward
 main.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

git fetch
git push