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

Выполнил: Веретенников М.А.
Группа:   А-01-23
Проверил: Козлюк Д. А.

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

1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:
al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02
$



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

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02
$ ls

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02
$



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

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02
$ mkdir alice

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02
$ mkdir bob

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02
$ cd alice

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice
$ mkdir project

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice
$ cd project/

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project
$ cd ..

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice
$ cd project



4. Инициализировал репозитарий:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/al/Desktop/lab02/alice/project/.git/

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$

У меня имя ветки сразу стоит main, поэтому я не стал его менять.



5. Настроил репозитарий Алисы:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git config user.name 'Alice (VeretennikovMA)'

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git config user.email 'VeretennikovMA@mpei.ru'



6. Запустил CodeBlocks и создал проект в репозитарии Алисы, а затем собрал его.



7. Просмотрел состояние рабочей копии:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main  // Просматриваем ветку main 

No commits yet  // На ней еще нет коммитов

Untracked files:  // Файлы, которые пока что не отслеживаются
  (use "git add <file>..." to include in what will be committed)  // Подсказка, как добавить коммиты
        bin/
        main.cpp
        obj/
        project.cbp  // Файлы в ~/Desktop/lab02/alice/project

nothing added to commit but untracked files present (use "git add" to track)  // Еще ничего не закомиченно и неотслеживаемые файлы показаны(подсказка для добавления файлов коммита)



8. Добавил файл main.cpp в индекс, проверил состояние рабочей копии и выполнил коммит с файлом main.cpp:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp

al@DESKTOP-1QU05A3 MINGW64 ~/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)
        bin/
        obj/
        project.cbp

В состоянии рабочей копии изменились неотслеживаемые файлы, так как main.cpp начал отслеживаться и будет закоммичен в следующей строке:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: заготовка программы"
[main (root-commit) 0e4e5bc] code: заготовка программы
 1 file changed, 9 insertions(+)
 create mode 100644 main.cpp



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

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add project.cbp
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "build: добавлен файл проекта"
[main 16b433b] build: добавлен файл проекта
 1 file changed, 40 insertions(+)
 create mode 100644 project.cbp



10. Заменим тело функции main() на ввод двух чисел, просмотрел состояние репозитория и закоммитил изменения:

cout << "Enter A and B: ";
int a, b;
cin >> a >> b;

al@DESKTOP-1QU05A3 MINGW64 ~/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  // Изменились слова до ":" из "new file" в "modified"

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

no changes added to commit (use "git add" and/or "git commit -a")  // Добавилась строка о том, что у коммита пока ничего не поменялось

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: ввод чисел a и b"
[main 5ace135] code: ввод чисел a и b
 Date: Sun Mar 31 22:30:16 2024 +0300
 1 file changed, 3 insertions(+), 2 deletions(-)



11. Добавил в программу вывод суммы a и b, а затем закоммитил:

int main()
{
    ...
    cout << "A + B = " << a + b;
}

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add -u

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: вывод суммы a и b"
[main 0f15157] code: вывод суммы a и b
 1 file changed, 1 insertion(+)



12. Добавил в программу вывод суммы a и b и закоммитил:

int main()
{
    ...
    cout << "A + B = " << a + b << '\n'
         << "A - B = " << a - b << '\n';
}

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -a -m "code: вывод разности a и b"
[main ecc914b] code: вывод разности a и b
 1 file changed, 2 insertions(+), 1 deletion(-)



13. Cоздал в CodeBlocks новый файл (.gitignore) и записал в него строки /bin /obj и /project.layout, проверил его на работоспособность и закоммитил:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore
        project.depend

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

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add .gitignore

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "build: git"
[main fcbb050] build: git
 1 file changed, 2 insertions(+)
 create mode 100644 .gitignore



14. Попробовал команду git log и ее опции:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log
commit fcbb050294df58e51c9d5fdf85069d8f0225023f (HEAD -> main)
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:48:55 2024 +0300

    build: git

commit ecc914b5b7dff2690f1b1c6efd20770ab6d16789
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:41:09 2024 +0300

    code: вывод разности a и b

commit 0f1515740d9b5116d35dc69a1cf3834fdd198432
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:38:48 2024 +0300

    code: вывод суммы a и b

commit 5ace135c1e0dfaf34cd2bba0fa076dfe4ad387c2
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:30:16 2024 +0300

    code: ввод чисел a и b

commit 16b433bda8f6766cd2311c87c2a38a9171319957
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:17:26 2024 +0300

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

commit 0e4e5bc85b7ee16d4c1ab3b7cfe67f1bc0b52bcd
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:13:38 2024 +0300

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

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --stat                                                // Для последнего коммита:
commit fcbb050294df58e51c9d5fdf85069d8f0225023f (HEAD -> main)  // Его хэш
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>         // Автор и его email
Date:   Sun Mar 31 22:48:55 2024 +0300                          // Дата

    build: git                                                  // Сообщение

 .gitignore | 2 ++                                              // Изменённый(или добавленный) файл | количество изменённых строк (кратко)
 1 file changed, 2 insertions(+) 				// Количество изменённых файлов | количество изменённых строк

commit ecc914b5b7dff2690f1b1c6efd20770ab6d16789
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>	
Date:   Sun Mar 31 22:41:09 2024 +0300

    code: вывод разности a и b

 main.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 0f1515740d9b5116d35dc69a1cf3834fdd198432
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:38:48 2024 +0300

    code: вывод суммы a и b

 main.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 5ace135c1e0dfaf34cd2bba0fa076dfe4ad387c2
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:30:16 2024 +0300

    code: ввод чисел a и b

 main.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 16b433bda8f6766cd2311c87c2a38a9171319957
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:17:26 2024 +0300

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

 project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

commit 0e4e5bc85b7ee16d4c1ab3b7cfe67f1bc0b52bcd

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate
fcbb050 (HEAD -> main) build: git
ecc914b code: вывод разности a и b
0f15157 code: вывод суммы a и b
5ace135 code: ввод чисел a и b
16b433b build: добавлен файл проекта
0e4e5bc code: заготовка программы

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* fcbb050 (HEAD -> main) build: git
* ecc914b code: вывод разности a и b
* 0f15157 code: вывод суммы a и b
* 5ace135 code: ввод чисел a и b
* 16b433b build: добавлен файл проекта
* 0e4e5bc code: заготовка программы



15. Нашёл коммиты по теме build, а затем коммиты, затргивающие project.cbp:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --grep "build:"
commit fcbb050294df58e51c9d5fdf85069d8f0225023f (HEAD -> main)
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:48:55 2024 +0300

    build: git

commit 16b433bda8f6766cd2311c87c2a38a9171319957
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:17:26 2024 +0300

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

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log -- project.cbp
commit 16b433bda8f6766cd2311c87c2a38a9171319957
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:17:26 2024 +0300

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



16. Просмотрел предпоследний коммит тремя способами:

1) git show HEAD~1
2) git show main~1
3) git show ecc914b

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git show HEAD~1
commit ecc914b5b7dff2690f1b1c6efd20770ab6d16789
Author: Alice (VeretennikovMA) <VeretennikovMA@mpei.ru>
Date:   Sun Mar 31 22:41:09 2024 +0300

    code: вывод разности a и b

diff --git a/main.cpp b/main.cpp
index 58aca4b..8435233 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 = " << a + b;
+    cout << "A + B = " << a + b << '\n'
+         << "A - B = " << a - b << '\n';
 }



17. Добавил в main.cpp печать произведения чисел, а затем просмотрел изменения в рабочей копии с различным количеством аргументов:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff
diff --git a/main.cpp b/main.cpp
index 8435233..f372c78 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,5 +8,6 @@ int main()
     int a, b;
     cin >> a >> b;
     cout << "A + B = " << a + b << '\n'
-         << "A - B = " << a - b << '\n';  // Строчка, которая была убрана
+         << "A - B = " << a - b << '\n'   // Добавленная строка
+         << "A * B = " << a * b << '\n';  // Добавленная строка
 }

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff HEAD~2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4c7473d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/bin
+/obj
diff --git a/main.cpp b/main.cpp
index 58aca4b..f372c78 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,5 +7,7 @@ int main()
     cout << "Enter A and B: ";
     int a, b;
     cin >> a >> b;
-    cout << "A + B = " << a + b;
+    cout << "A + B = " << a + b << '\n'
+         << "A - B = " << a - b << '\n'
+         << "A * B = " << a * b << '\n';
 }

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff HEAD~2 HEAD
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4c7473d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/bin
+/obj
diff --git a/main.cpp b/main.cpp
index 58aca4b..8435233 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 = " << a + b;
+    cout << "A + B = " << a + b << '\n'
+         << "A - B = " << a - b << '\n';
 }



18. Просмотрел изменения между самым первым коммитом и коммитом, добавляющим вывод разности (перед этим узнал хэши нужных коммитов):

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline
fcbb050 (HEAD -> main) build: git
ecc914b code: вывод разности a и b
0f15157 code: вывод суммы a и b
5ace135 code: ввод чисел a и b
16b433b build: добавлен файл проекта
0e4e5bc code: заготовка программы

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff 0e4e5bc ecc914b
diff --git a/main.cpp b/main.cpp
index b4392ec..8435233 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,6 +4,9 @@ using namespace std;

 int main()
 {
-    cout << "Hello world!" << endl;
-    return 0;
+    cout << "Enter A and B: ";
+    int a, b;
+    cin >> a >> b;
+    cout << "A + B = " << a + b << '\n'
+         << "A - B = " << a - b << '\n';
 }
diff --git a/project.cbp b/project.cbp
new file mode 100644
index 0000000..99bb702
--- /dev/null
+++ b/project.cbp
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+       <FileVersion major="1" minor="6" />
+       <Project>
+               <Option title="project" />
+               <Option pch_mode="2" />
+               <Option compiler="gcc" />
+               <Build>
+                       <Target title="Debug">
+                               <Option output="bin/Debug/project" prefix_auto="1" extension_auto="1" />
+                               <Option object_output="obj/Debug/" />
+                               <Option type="1" />
+                               <Option compiler="gcc" />
+                               <Compiler>
+                                       <Add option="-g" />
+                               </Compiler>
+                       </Target>
+                       <Target title="Release">
+                               <Option output="bin/Release/project" prefix_auto="1" extension_auto="1" />
+                               <Option object_output="obj/Release/" />
+                               <Option type="1" />
+                               <Option compiler="gcc" />
+                               <Compiler>
+                                       <Add option="-O2" />



19. Закоммитил изменения в рабочей версии:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -a -m "code: вывод произведения a и b"
[main 74ebbaa] code: вывод произведения a и b
 1 file changed, 2 insertions(+), 1 deletion(-)



20. Откатил изменения двумя способами:

1) 
al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at fcbb050 build: git

2)
al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git checkout HEAD -- main.cpp



21. Зарегестрировался на сервере Git УИТ, создал пару ключей, запустил агента, загрузил в него ключ, а затем изобразил открытый ключ:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/al/.ssh/id_rsa):
/c/Users/al/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/al/.ssh/id_rsa
Your public key has been saved in /c/Users/al/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:koDdWPCZNZtl00qMHBcQYcd9BMMjCPQC+xlv/zBDzMY al@DESKTOP-1QU05A3
The key's randomart image is:
+---[RSA 3072]----+
|    oo+oOXB=oo.  |
|   o B *+O=.=..  |
|  . = B +. o o   |
|     o * +.      |
|      = S E      |
|       o +       |
|          =      |
|           =     |
|            .    |
+----[SHA256]-----+

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ eval $(ssh-agent -s)
Agent pid 1778

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ ssh-add
Enter passphrase for /c/Users/al/.ssh/id_rsa:
Identity added: /c/Users/al/.ssh/id_rsa (al@DESKTOP-1QU05A3)

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDArtTiAdnQieo3J8k7rNjE3yqtECrfUp1zRenv9Yx0OItDXl4g7EGysyrFGH8sjLQDimWnVzZOAMaMgaGz4k1E8i4TM2YK8xa+4WS//65UWFeaKSCrPXyfa3tDSCkqkWNhNCn3KFEgMddlGVl6S6+W43AGdA6SysnufTxbFeiMl88uDKdiQcEI2d36cK7O/QgJLLu8SiV4S+uR7winWEmJ7t1pWjKLMHg3NP0GJZfqyIrLSB8doosbPjbzA6Eh3UWnR3LKfJw/ORNTa4ej4ux7FckmPkGDnNwoepdlS/iVOVnjjcYm1348f6nFPKHVPCFspMr5/W2/phUL6GnVva0bumGvTfVuc/FUm0jKibiAtVXnjemP+Wxzy9Y36T75JVUbFvLndW9N1QlFmgh71qJk+qeb9lYiXPsG+PTh4M1j/gPF/A8WyKQFQXpCwhC9m1ozHxSgQh2e9ljWzv8Jcr7qJePTSDL1wozoTvAmyALHZKtBoZuTrypL2CeF1cfAfok= al@DESKTOP-1QU05A3



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



23. Создал пустой репозитарий на сервере и добавил в него свои файлы:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git remote add origin http://uit.mpei.ru/git/VeretennikovMA/cs-lab02.git

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push -u origin main
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 6 threads
Compressing objects: 100% (16/16), done.
Writing objects: 100% (18/18), 2.27 KiB | 1.14 MiB/s, done.
Total 18 (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/VeretennikovMA/cs-lab02.git
 * [new branch]      main -> main
branch 'main' set up to track 'origin/main'.



24. Скопировал проект в каталоге Боба, перешел в project и настроил Git:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob
$ git clone http://uit.mpei.ru/git/VeretennikovMA/cs-lab02.git project
Cloning into 'project'...
remote: Enumerating objects: 18, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 18 (delta 2), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (18/18), done.
Resolving deltas: 100% (2/2), done.

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob
$ cd project

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.name "Bob (VeretennikovMA)"

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.email "VeretennikovMA@mpei.ru"



25. «На машине Боба» добавил в программу печать произведения чисел, сделал коммит и отправил его на сервер:

int main()
{
	 ...
         << "A * B = " << a * b << '\n';
}

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -a -m "code: печать произведения a и b"
[main 0204bd6] code: печать произведения a и b
 1 file changed, 2 insertions(+), 1 deletion(-)

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 6 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 424 bytes | 424.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/VeretennikovMA/cs-lab02.git
   fcbb050..0204bd6  main -> main



26. «На машине Алисы» выполнил загрузку изменений, просмотрел историю всех веток и подвинул ветку main к скачанной версии:

al@DESKTOP-1QU05A3 MINGW64 ~/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 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 404 bytes | 57.00 KiB/s, done.
From http://uit.mpei.ru/git/VeretennikovMA/cs-lab02
   fcbb050..0204bd6  main       -> origin/main

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 0204bd6 (origin/main) code: печать произведения a и b
* fcbb050 (HEAD -> main) build: git
* ecc914b code: вывод разности a и b
* 0f15157 code: вывод суммы a и b
* 5ace135 code: ввод чисел a и b
* 16b433b build: добавлен файл проекта
* 0e4e5bc code: заготовка программы

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git pull --ff-only
Updating fcbb050..0204bd6
Fast-forward
 main.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)



27. «На машине Алисы» добавил в программу печать деления чисел, сделал коммит и отправил его на сервер:

int main()
{
	 ...
         << "A / B = " << a / b << '\n';
}

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -a -m "code: печать деления a и b"
[main 7f4609c] code: печать деления a и b
 1 file changed, 2 insertions(+), 1 deletion(-)

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 6 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 416 bytes | 416.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/VeretennikovMA/cs-lab02.git
   0204bd6..7f4609c  main -> main



28. «На машине Боба» выполнил загрузку изменений, просмотрел историю всех веток и подвинул ветку main к скачанной версии:

al@DESKTOP-1QU05A3 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 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 396 bytes | 18.00 KiB/s, done.
From http://uit.mpei.ru/git/VeretennikovMA/cs-lab02
   0204bd6..7f4609c  main       -> origin/main

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 7f4609c (origin/main, origin/HEAD) code: печать деления a и b
* 0204bd6 (HEAD -> main) code: печать произведения a и b
* fcbb050 build: git
* ecc914b code: вывод разности a и b
* 0f15157 code: вывод суммы a и b
* 5ace135 code: ввод чисел a и b
* 16b433b build: добавлен файл проекта
* 0e4e5bc code: заготовка программы

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main)
$ git pull --ff-only
Updating 0204bd6..7f4609c
Fast-forward
 main.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)



29. «На машине Алисы» дополнил программу печатью максимума, сделал коммит и отправил его на сервер:

int main()
{
	 ...
         << "max(a, b) = " << max(a, b) << '\n';
}

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -a -m "code: печать максимума из a и b"
[main a80f52d] code: печать максимума из a и b
 1 file changed, 2 insertions(+), 1 deletion(-)

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 6 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 424 bytes | 424.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/VeretennikovMA/cs-lab02.git
   7f4609c..a80f52d  main -> main



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

int main()
{
	 ...
         << "min(a, b) = " << min(a, b) << '\n';
}

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -a -m "code: печать минимума из a и b"
[main eb185a5] code: печать минимума из a и b
 1 file changed, 2 insertions(+), 1 deletion(-)

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
To http://uit.mpei.ru/git/VeretennikovMA/cs-lab02.git
 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'http://uit.mpei.ru/git/VeretennikovMA/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.



31. «От лица Боба» загрузил коммиты из удаленного хранилища и отобразил историю всех веток:

al@DESKTOP-1QU05A3 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 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 404 bytes | 21.00 KiB/s, done.
From http://uit.mpei.ru/git/VeretennikovMA/cs-lab02
   7f4609c..a80f52d  main       -> origin/main

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --all
eb185a5 (HEAD -> main) code: печать минимума из a и b
a80f52d (origin/main, origin/HEAD) code: печать максимума из a и b
7f4609c code: печать деления a и b
0204bd6 code: печать произведения a и b
fcbb050 build: git
ecc914b code: вывод разности a и b
0f15157 code: вывод суммы a и b
5ace135 code: ввод чисел a и b
16b433b build: добавлен файл проекта
0e4e5bc code: заготовка программы



32. Попытался переместить коммит Боба поверх коммита Алисы, затем разрешил конфликт, добавил файл в индекс и продолжил прерванную операцию rebase:

al@DESKTOP-1QU05A3 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 eb185a5... code: печать минимума из 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 eb185a5... code: печать минимума из a и b

main.cpp:
#include <iostream>

using namespace std;

int main()
{
    cout << "Enter A and B: ";
    int a, b;
    cin >> a >> b;
    cout << "A + B = " << a + b << '\n'
         << "A - B = " << a - b << '\n'
         << "A * B = " << a * b << '\n'
         << "A / B = " << a / b << '\n'
<<<<<<< HEAD                                      // Изменения на сервере
         << "max(a, b) = " << max(a, b) << '\n';  
=======                                           // Изменения в своем проекте
         << "min(a, b) = " << min(a, b) << '\n';
>>>>>>> eb185a5 (code: печать минимума из a и b)
}

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
$ git add main.cpp

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
$ git rebase --continue
hint: Waiting for your editor to close the file... unix2dos: converting file C:/Users/al/Desktop/lab02/bob/project/.git/COMMIT_EDITMSG to DOS format...
dos2unix: converting file C:/Users/al/Desktop/lab02/bob/project/.git/COMMIT_EDITMSG to Unix format...
[detached HEAD c977630] code: печать минимума из a и b
 1 file changed, 2 insertions(+), 1 deletion(-)

Здесь появилась надпись, неуказанная в lab02, которая говорила мне закрыть файл COMMIT_EDITMSG (

code: печать минимума из a и b

# 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 a80f52d
# Last command done (1 command done):
#    pick eb185a5 code: печать минимума из a и b
# No commands remaining.
# You are currently rebasing branch 'main' on 'a80f52d'.
#
# Changes to be committed:
#	modified:   main.cpp
#
# Untracked files:
#	project.depend
#

), после закрытия которого все пошло по намеченному плану.



33. Убедился, что история хранилища теперь имеет желаемый вид и отправил изменения на сервер:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --all
c977630 (HEAD -> main) code: печать минимума из a и b
a80f52d (origin/main, origin/HEAD) code: печать максимума из a и b
7f4609c code: печать деления a и b
0204bd6 code: печать произведения a и b
fcbb050 build: git
ecc914b code: вывод разности a и b
0f15157 code: вывод суммы a и b
5ace135 code: ввод чисел a и b
16b433b build: добавлен файл проекта
0e4e5bc code: заготовка программы

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 6 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 425 bytes | 425.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/VeretennikovMA/cs-lab02.git
   a80f52d..c977630  main -> main



34. «На машине Алисы» создал ветку double, переключился на нее, заменил тип переменных a и b на double, сделал коммит и переключился на ветку main:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git branch double

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'

main.cpp:
int main()
{
    ...
    double a, b;
    ...
}

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (double)
$ git commit -a -m "code: изменен тип a и b на double"
[double 0bad591] code: изменен тип a и b на double
 1 file changed, 1 insertion(+), 1 deletion(-)

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (double)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.



35. Синхронизировал ветку main «на машине Алисы» с сервером и просмотрел историю всех веток:

al@DESKTOP-1QU05A3 MINGW64 ~/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 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 405 bytes | 21.00 KiB/s, done.
From http://uit.mpei.ru/git/VeretennikovMA/cs-lab02
   a80f52d..c977630  main       -> origin/main

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 0bad591 (double) code: изменен тип a и b на double
| * c977630 (origin/main) code: печать минимума из a и b
|/
* a80f52d (HEAD -> main) code: печать максимума из a и b
* 7f4609c code: печать деления a и b
* 0204bd6 code: печать произведения a и b
* fcbb050 build: git
* ecc914b code: вывод разности a и b
* 0f15157 code: вывод суммы a и b
* 5ace135 code: ввод чисел a и b
* 16b433b build: добавлен файл проекта
* 0e4e5bc code: заготовка программы

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git pull --ff-only
Updating a80f52d..c977630
Fast-forward
 main.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 0bad591 (double) code: изменен тип a и b на double
| * c977630 (HEAD -> main, origin/main) code: печать минимума из a и b
|/
* a80f52d code: печать максимума из a и b
* 7f4609c code: печать деления a и b
* 0204bd6 code: печать произведения a и b
* fcbb050 build: git
* ecc914b code: вывод разности a и b
* 0f15157 code: вывод суммы a и b
* 5ace135 code: ввод чисел a и b
* 16b433b build: добавлен файл проекта
* 0e4e5bc code: заготовка программы



36. Слил ветку main в double, просмотрел историю всез веток репозитария, отправил изменения, а затем снова посмотрел изменения:

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git merge double
Auto-merging main.cpp
Merge made by the 'ort' strategy.
 main.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
*   475ac10 (HEAD -> main) Merge branch 'double'
|\
| * 0bad591 (double) code: изменен тип a и b на double
* | c977630 (origin/main) code: печать минимума из a и b
|/
* a80f52d code: печать максимума из a и b
* 7f4609c code: печать деления a и b
* 0204bd6 code: печать произведения a и b
* fcbb050 build: git
* ecc914b code: вывод разности a и b
* 0f15157 code: вывод суммы a и b
* 5ace135 code: ввод чисел a и b
* 16b433b build: добавлен файл проекта
* 0e4e5bc code: заготовка программы

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 6 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 729 bytes | 729.00 KiB/s, done.
Total 6 (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/VeretennikovMA/cs-lab02.git
   c977630..475ac10  main -> main

al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
*   475ac10 (HEAD -> main, origin/main) Merge branch 'double'
|\
| * 0bad591 (double) code: изменен тип a и b на double
* | c977630 code: печать минимума из a и b
|/
* a80f52d code: печать максимума из a и b
* 7f4609c code: печать деления a и b
* 0204bd6 code: печать произведения a и b
* fcbb050 build: git
* ecc914b code: вывод разности a и b
* 0f15157 code: вывод суммы a и b
* 5ace135 code: ввод чисел a и b
* 16b433b build: добавлен файл проекта
* 0e4e5bc code: заготовка программы
Описание
No description provided
Readme 41 KiB
Languages
C++ 100%