Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Alice (NikitkinTY) 52d5761ee5
doc: добален отчет
2 лет назад
.gitignore git 2 лет назад
README.txt doc: добален отчет 2 лет назад
main.cpp code: изменен тип чисел с целых на действительные 2 лет назад
project.cbp build: добавлен файл проекта 2 лет назад

README.txt

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

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


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

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

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

archlinux%





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

archlinux% ls
archlinux%





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

archlinux% mkdir alice
archlinux% mkdir bob
archlinux% cd alice
archlinux% mkdir project
archlinux% cd project
archlinux% pwd
/home/sage/Desktop/lab02/alice/project
archlinux% cd ..
archlinux% pwd
/home/sage/Desktop/lab02/alice
archlinux% cd project
archlinux% pwd
/home/sage/Desktop/lab02/alice/project
archlinux%





4. Инициализировал репозитарий и подтвердил командой ls -A наличие папки .git:

archlinux% git init
подсказка: Using 'master' as the name for the initial branch. This default branch name
подсказка: is subject to change. To configure the initial branch name to use in all
подсказка: of your new repositories, which will suppress this warning, call:
подсказка:
подсказка: git config --global init.defaultBranch <name>
подсказка:
подсказка: Names commonly chosen instead of 'master' are 'main', 'trunk' and
подсказка: 'development'. The just-created branch can be renamed via this command:
подсказка:
подсказка: git branch -m <name>
Инициализирован пустой репозиторий Git в /home/sage/Desktop/lab02/alice/project/.git/
archlinux% git branch -m main
archlinux% ls -A
.git
archlinux%





5. Настроил репозитарий Алисы, чтобы коммиты были от её имени:

archlinux% git config user.name 'Alice (NikitkinTY)'
archlinux% git config user.email 'NikitkinTY@mpei.ru'
archlinux%





6. Запустил CodeBlocks и создал проект в репозитарии Алисы со следующими
настройками:

Project title: project
Folder to create project in: /home/sage/Desktop/lab02/alice/
Project filename: project.cbp
Resulting filename: /home/sage/Desktop/lab02/alice/project/project.cbp





7. Собрал проект, после чего вернулся в git и просмотрел состояние
рабочей копии:

archlinux% git status
Текущая ветка: main

Еще нет коммитов

Неотслеживаемые файлы:
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит)
bin/
main.cpp
obj/
project.cbp

индекс пуст, но есть неотслеживаемые файлы
(используйте «git add», чтобы проиндексировать их)
archlinux%


Пояснение к выведенной информации:

Текущая ветка: main #Вывод названия текущей ветки

Еще нет коммитов #Констатация отсутствия коммитов

Неотслеживаемые файлы: #Вывод всех неотслеживаемых файлов с подсказкой о
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит) #git add
bin/
main.cpp
obj/
project.cbp

индекс пуст, но есть неотслеживаемые файлы #Понятно из содержания

(используйте «git add», чтобы проиндексировать их) #Подсказка о добавление в индекс





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

archlinux% git add main.cpp
archlinux%





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

archlinux% git status
Текущая ветка: main

Еще нет коммитов

Изменения, которые будут включены в коммит:
(используйте «git rm --cached <файл>...», чтобы убрать из индекса)
новый файл: main.cpp

Неотслеживаемые файлы:
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит)
bin/
obj/
project.cbp

archlinux%


Пояснение к выведенной информации:

Текущая ветка: main #Вывод названия текущей ветки

Еще нет коммитов #Констатация отсутствия коммитов

Изменения, которые будут включены в коммит: #Вывод файла (main.cpp), который попадёт в
(используйте «git rm --cached <файл>...», чтобы убрать из индекса) #следующий коммит, и подсказка о выводе файла
новый файл: main.cpp #из индекса

Неотслеживаемые файлы: #Вывод всех оставшихся неотслеживаемых файлов с
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит) #подсказкой о git add
bin/
obj/
project.cbp

Из изменений - сообщение о пустом индексе и появление списка для нового коммита



10. Выполнил коммит с файлом main.cpp и коротким сообщением:

archlinux% git commit -m 'code: заготовка программы'
[main (корневой коммит) 0f2fab6] code: заготовка программы
1 file changed, 9 insertions(+)
create mode 100644 main.cpp
archlinux%





11. Проверил состояние проекта, добавил файл project.cbp в индекс и
сделал коммит с ним, тема — build:

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





12. Заменил тело функции main() на ввод двух чисел и сохранил файл:

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

13. Просмотрел состоянние репозитария:

archlinux% git status
Текущая ветка: main
Изменения, которые не в индексе для коммита:
(используйте «git add <файл>...», чтобы добавить файл в индекс)
(используйте «git restore <файл>...», чтобы отменить изменения в рабочем каталоге)
изменено: main.cpp

Неотслеживаемые файлы:
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит)
bin/
obj/

индекс пуст (используйте «git add» и/или «git commit -a»)
archlinux%


Заметил, что main.cpp больше не находится под "Неотслеживаемые файлы:", теперь
main.cpp отображается выше с припиской "изменено:".

Отличие от случая, когда добавлялся новый файл и изменялся существующий в том,
что новый файл входил в индекс, а изменёный нет.





14. Использовал первый способ для коммита изменений, а именно выбор файла,
изменния в которых должны войти в коммит, после чего сам коммит:

archlinux% git add main.cpp
archlinux% git commit -m 'code: добавлен ввод двух чисел'
[main 1a522a3] code: добавлен ввод двух чисел
1 file changed, 3 insertions(+), 1 deletion(-)
archlinux%





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

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





16. Использовал второй способ для коммита изменений, а именно добавить
в индекс все изменения, затем сам коммит:

archlinux% git add -u
archlinux% git commit -m 'code: добавлен вывод суммы чисел'
[main 76b205d] code: добавлен вывод суммы чисел
1 file changed, 1 insertion(+)
archlinux%





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

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





18. использовал третий способ для коммита изменений, а именно добавление
всех изменений в индекс и сам коммит в один шаг.

archlinux% git commit -a -m 'code: добавлен вывод разности чисел'
[main 4bf99bf] code: добавлен вывод разности чисел
1 file changed, 2 insertions(+), 1 deletion(-)
archlinux%





19. Проверил состояние проекта и заметил наличие каталогов bin/ , obj/ :

archlinux% git status
Текущая ветка: main
Неотслеживаемые файлы:
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит)
bin/
obj/

индекс пуст, но есть неотслеживаемые файлы
(используйте «git add», чтобы проиндексировать их)
archlinux%





20. Создал в CodeBlocks файл .gitignore в корне репозитария со строчкой
/bin , после чего проверил состояние проекта:

archlinux% git status
Текущая ветка: main
Неотслеживаемые файлы:
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит)
.gitignore
obj/

индекс пуст, но есть неотслеживаемые файлы
(используйте «git add», чтобы проиндексировать их)
archlinux%





21. Добавил в файл .gitignore строчки /obj и /*.layout, после чего проверил
состояние проекта.

archlinux% git status
Текущая ветка: main
Неотслеживаемые файлы:
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит)
.gitignore

индекс пуст, но есть неотслеживаемые файлы
(используйте «git add», чтобы проиндексировать их)
archlinux%





22. Создал коммит с .gitignore, тема - git :

archlinux% git add .gitignore
archlinux% git commit -m 'git'
[main 9374e7a] git
1 file changed, 3 insertions(+)
create mode 100644 .gitignore
archlinux%





23. Опробовал git log, который показывает журнал репозитария:

archlinux% git log
commit 9374e7a5139490f527c4ca2d6811f6b223f5774d (HEAD -> main)
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 14:26:50 2023 +0300

git

commit 4bf99bf3fe7ec26eac0c2b012fdd16eb93cf80ac
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 14:17:22 2023 +0300

code: добавлен вывод разности чисел

commit 76b205dcf4d398984a32e7749a2c182ba3685b12
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 12:45:17 2023 +0300

code: добавлен вывод суммы чисел

commit 1a522a3f2ae2dc6ea7b247471898f7543727f2f5
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 12:29:57 2023 +0300

code: добавлен ввод двух чисел

commit 451a2b6ca5e601babdd5db674769b3324ed25214
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 12:19:37 2023 +0300

archlinux%





24. Опробовал git log --stat показывает файлы, который измененные в коммитах:

archlinux% git log --stat
commit 9374e7a5139490f527c4ca2d6811f6b223f5774d (HEAD -> main)
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 14:26:50 2023 +0300

git

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

commit 4bf99bf3fe7ec26eac0c2b012fdd16eb93cf80ac
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 14:17:22 2023 +0300

code: добавлен вывод разности чисел

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

commit 76b205dcf4d398984a32e7749a2c182ba3685b12
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 12:45:17 2023 +0300

code: добавлен вывод суммы чисел

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

commit 1a522a3f2ae2dc6ea7b247471898f7543727f2f5
archlinux%



Пояснение к последнему коммиту:
commit 9374e7a5139490f527c4ca2d6811f6b223f5774d (HEAD -> main) #Вывод хэша коммита и указания на то, что это последний коммит

Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru> #Имя и почта автора коммита

Date: Sun Mar 26 14:26:50 2023 +0300 #Время и дата совершения коммита

git #Тема коммита

.gitignore | 3 +++ #Название файла вошедшего в коммит и количество изменений в нём

1 file changed, 3 insertions(+) #Вывод общего количества изменёных файлов и изменений в них





25. Опробовал git log --oneline --decorate показывает файлы, который
показывает коммиты компактно (--oneline), а также показывает ссылки, концы
веток и тэги (--decorate):

archlinux% git log --oneline --decorate
9374e7a (HEAD -> main) git
4bf99bf code: добавлен вывод разности чисел
76b205d code: добавлен вывод суммы чисел
1a522a3 code: добавлен ввод двух чисел
451a2b6 build: добавлен файл проекта
0f2fab6 code: заготовка программы
archlinux%





26. Опробовал git log --oneline --decorate --all --graph,
который делает то же для всех веток (--all), причем коммиты отображаются
в терминале в виде дерева (--graph):

archlinux% git log --oneline --decorate --all --graph
* 9374e7a (HEAD -> main) git
* 4bf99bf code: добавлен вывод разности чисел
* 76b205d code: добавлен вывод суммы чисел
* 1a522a3 code: добавлен ввод двух чисел
* 451a2b6 build: добавлен файл проекта
* 0f2fab6 code: заготовка программы
archlinux%





27. Нашёл коммиты по теме built:

archlinux% git log --grep "build:"
commit 451a2b6ca5e601babdd5db674769b3324ed25214
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 12:19:37 2023 +0300

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





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

archlinux% git log -- project.cbp
commit 451a2b6ca5e601babdd5db674769b3324ed25214
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 12:19:37 2023 +0300

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





29. Просмотрел последний коммит, как текущий коммит:

archlinux% git show HEAD
commit 9374e7a5139490f527c4ca2d6811f6b223f5774d (HEAD -> main)
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 14:26:50 2023 +0300

git

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d85abef
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/bin
+/obj
+/*.layout
archlinux%





30. Просмотрел последний коммит по имени ветви

archlinux% git show main
commit 9374e7a5139490f527c4ca2d6811f6b223f5774d (HEAD -> main)
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 14:26:50 2023 +0300

git

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d85abef
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/bin
+/obj
+/*.layout
archlinux%





31. Просмотрел последний коммит по хэшу нужного коммита

archlinux% git show 9374e7a
commit 9374e7a5139490f527c4ca2d6811f6b223f5774d (HEAD -> main)
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 14:26:50 2023 +0300

git

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d85abef
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/bin
+/obj
+/*.layout
archlinux%





32. Просмотрел предпоследний коммит:

archlinux% git show HEAD~1
commit 4bf99bf3fe7ec26eac0c2b012fdd16eb93cf80ac
Author: Alice (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 14:17:22 2023 +0300

code: добавлен вывод разности чисел

diff --git a/main.cpp b/main.cpp
index 6de6dd2..5371b30 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,6 +7,7 @@ int main()
cout << "Enter A and B: ";
int a, b;
cin >> a >> b;
- cout << "A + B = " << a + b << '\n';
+ cout << "A + B = " << a + b << '\n'
+ << "A - B = " << a - b << '\n';
return 0;
}
archlinux%





33. Добавил вывод произведения чисел:

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




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

archlinux% git diff
diff --git a/main.cpp b/main.cpp
index 5371b30..fbd9488 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,6 +8,7 @@ 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';
return 0;
}
archlinux%

Пояснение к выведенной информации:

diff --git a/main.cpp b/main.cpp #Вывод входных данных сравнения

index 5371b30..fbd9488 100644 #Метаданные git

--- a/main.cpp #Маркер изменений входных данных

+++ b/main.cpp #Маркер изменений входных данных

@@ -8,6 +8,7 @@ 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';
return 0;
}





35. Просмотрел изменения от первого коммита до коммита, добавляющего вывод разности:

archlinux% git diff 0f2fab6 4bf99bf
diff --git a/main.cpp b/main.cpp
index b4392ec..5371b30 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,6 +4,10 @@ using namespace std;

int main()
{
- cout << "Hello world!" << endl;
+ cout << "Enter A and B: ";
+ 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
new file mode 100644
index 0000000..c4697a9
--- /dev/null
+++ b/project.cbp
@@ -0,0 +1,38 @@
+<?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" />
archlinux%





36. Выполнил коммит с выводом произведения:

archlinux% git add main.cpp
archlinux% git commit -m 'code: добавлен вывод произведения чисел'
[main cf68a51] code: добавлен вывод произведения чисел
1 file changed, 2 insertions(+), 1 deletion(-)
archlinux%





37. Откатил проект до предыдущего коммита:

archlinux% git reset --hard HEAD~1
Указатель HEAD сейчас на коммите 9374e7a git
archlinux%


В программе остались только вывод суммы и разности чисел.





38. Добавил в main.cpp строчку:

// you may type whatever you want





39. Откатил main.cpp до последнего коммита:

archlinux% git checkout HEAD -- main.cpp
archlinux%


Из программы был убран комментарий.





40. Выполнил регестрацию на Git УИТ





41. Создал пару ключей:

archlinux% ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sage/.ssh/id_rsa):
Created directory '/home/sage/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sage/.ssh/id_rsa
Your public key has been saved in /home/sage/.ssh/id_rsa.pub
...
archlinux%





42. Запустил программу-агент и загрузил ключ:

archlinux% eval $(ssh-agent -s)
Agent pid 30472
archlinux% ssh-add
Enter passphrase for /home/sage/.ssh/id_rsa:
Identity added: /home/sage/.ssh/id_rsa (sage@archlinux)





43. Отобразил открытый ключ:

archlinux% cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQClkkIgxFNp7UpMQ62HusJpdbiyakrZ9JoP4SsIniUs81/vxBW464KBFsuNPQZnLWheNvOQBH2QPMNPFeIpLUWnJHw5DaivOxpBfglqPK0JKjO5vTvJW7ImDIeGlBt3gjuycnGhotbquhgg0VdQJUXGPc7VgXUiw45B7c8n5bCEuTljMxCioole2SfLdRTBwfLdcevEZR529R6zLmikSURo5H3W1bJ2JyqRbrYP2tfN62q58R78VPwevBmIfx3CJ1wntidQhqLQtL79qiO+yPaJHsRI2+ODheSt+Qn4BKWVXwvWwvRlHg0sJTz2bG0TvRaGYUi7SCd3p+cf6ykxqBZAbiegwtDnBotnR8M72lX9xC5uWzykZKMrQx5wRT3Rq5J8pUZNie2BB/sKJ64ZR4bssYAefwcy3FYMSEhnWAN6vI8LfuD778Y5V72fKuUkQKH5GYfjh6tStMfrvcxe85RcxIK2ILDk9JEaG/U7fuuzzjRMFU+5SbxFRbYrtYp8eR0= sage@archlinux
archlinux%





44. Добавил открытый ключ в SSH keys в список открытых ключей своей учетной записи.





45. Создал на сервере пустой репозитарий cs-lab02, после чего настроил связь с удалённым хранилищем:

archlinux% git remote add origin git@uit.mpei.ru:NikitkinTY/cs-lab02.git
archlinux% git push -u origin main
The authenticity of host 'uit.mpei.ru (193.233.68.149)' 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.
Перечисление объектов: 18, готово.
Подсчет объектов: 100% (18/18), готово.
При сжатии изменений используется до 12 потоков
Сжатие объектов: 100% (16/16), готово.
Запись объектов: 100% (18/18), 2.32 КиБ | 2.32 МиБ/с, готово.
Всего 18 (изменений 2), повторно использовано 0 (изменений 0), повторно использовано пакетов 0
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:NikitkinTY/cs-lab02.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
archlinux%





46. Клонировал проект в папке Боба и выполнил переход в каталог проекта:

archlinux% git clone git@uit.mpei.ru:NikitkinTY/cs-lab02.git project
Клонирование в «project»...
Enter passphrase for key '/home/sage/.ssh/id_rsa':
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
Получение объектов: 100% (18/18), готово.
Определение изменений: 100% (2/2), готово.
archlinux% cd project
archlinux%





47. Выполнил настройку Git "на машине Боба":

archlinux% git config user.name 'Bob (NikitkinTY)'
archlinux% git config user.email 'NikitkinTY@mpei.ru'
archlinux%





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

archlinux% git add main.cpp
archlinux% git commit -m 'code: добавлен вывод произведения чисел'
[main c2aa84d] code: добавлен вывод произведения чисел
1 file changed, 2 insertions(+), 1 deletion(-)
archlinux% git log
commit c2aa84da3b1fd033a51f9591960daa5ec93961b4 (HEAD -> main)
Author: Bob (NikitkinTY) <NikitkinTY@mpei.ru>
Date: Sun Mar 26 18:14:10 2023 +0300

code: добавлен вывод произведения чисел
...





49. Отправил коммит на сервер:

archlinux% git push
Enter passphrase for key '/home/sage/.ssh/id_rsa':
Перечисление объектов: 5, готово.
Подсчет объектов: 100% (5/5), готово.
При сжатии изменений используется до 12 потоков
Сжатие объектов: 100% (3/3), готово.
Запись объектов: 100% (3/3), 428 байтов | 428.00 КиБ/с, готово.
Всего 3 (изменений 1), повторно использовано 0 (изменений 0), повторно использовано пакетов 0
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:NikitkinTY/cs-lab02.git
9374e7a..c2aa84d main -> main
archlinux%





50. «На машине Алисы» выполнил загрузку изменений:

archlinux% 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
Распаковка объектов: 100% (3/3), 408 байтов | 408.00 КиБ/с, готово.
Из uit.mpei.ru:NikitkinTY/cs-lab02
9374e7a..c2aa84d main -> origin/main
archlinux%





51. Посмотрел историю всех веток:

archlinux% git log --oneline --decorate --all --graph
* c2aa84d (origin/main) code: добавлен вывод произведения чисел
* 9374e7a (HEAD -> main) git
* 4bf99bf code: добавлен вывод разности чисел
* 76b205d code: добавлен вывод суммы чисел
* 1a522a3 code: добавлен ввод двух чисел
* 451a2b6 build: добавлен файл проекта
* 0f2fab6 code: заготовка программы
archlinux%

Заметил, что ветка main отстает на один коммит от ветки origin/main




52. Продвинул ветку main к скаченной версии:

archlinux% git pull --ff-only
Обновление 9374e7a..c2aa84d
Fast-forward
main.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
archlinux%





53. Убедился, что рабочая копия проекта «у Алисы» соответствует версии «у Боба»:

archlinux% git status
Текущая ветка: main
Эта ветка соответствует «origin/main».

нечего коммитить, нет изменений в рабочем каталоге
archlinux%





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

<< "A / B = " << a / b << '\n';


archlinux% git add main.cpp
archlinux% git commit -m 'code: добавлен вывод частного двух чисел'
[main 70fe935] code: добавлен вывод частного двух чисел
1 file changed, 2 insertions(+), 1 deletion(-)
archlinux% git push
Перечисление объектов: 5, готово.
Подсчет объектов: 100% (5/5), готово.
При сжатии изменений используется до 12 потоков
Сжатие объектов: 100% (3/3), готово.
Запись объектов: 100% (3/3), 449 байтов | 449.00 КиБ/с, готово.
Всего 3 (изменений 1), повторно использовано 0 (изменений 0), повторно использовано пакетов 0
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:NikitkinTY/cs-lab02.git
c2aa84d..70fe935 main -> main
archlinux%


archlinux% git pull
Enter passphrase for key '/home/sage/.ssh/id_rsa':
Обновление c2aa84d..70fe935
Fast-forward
main.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
archlinux% git status
Текущая ветка: main
Эта ветка соответствует «origin/main».

нечего коммитить, нет изменений в рабочем каталоге
archlinux%





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

Примечание:
Я добавил вывод и максимума и минимума, что позже исправил следующим коммитом.

if(a > b) {cout << "Maximum from A and B = " << a << '\n';}
else {cout << "Minimum from A and B = " << b << '\n';


archlinux% git add main.cpp
archlinux% git commit -m 'code: добавлен вывод максимума из чисел'
[main 020760b] code: добавлен вывод максимума из чисел
1 file changed, 2 insertions(+)
archlinux% git push
Enter passphrase for key '/home/sage/.ssh/id_rsa':
Перечисление объектов: 5, готово.
Подсчет объектов: 100% (5/5), готово.
При сжатии изменений используется до 12 потоков
Сжатие объектов: 100% (3/3), готово.
Запись объектов: 100% (3/3), 476 байтов | 476.00 КиБ/с, готово.
Всего 3 (изменений 1), повторно использовано 0 (изменений 0), повторно использовано пакетов 0
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:NikitkinTY/cs-lab02.git
70fe935..020760b main -> main
archlinux%


if(a > b) {cout << "Maximum from A and B = " << a << '\n';}


archlinux% git add main.cpp
archlinux% git commit -m 'code: исправлен вывод максимального значения'
[main 5e40d05] code: исправлен вывод максимального значения
1 file changed, 1 deletion(-)
archlinux% git push
Enter passphrase for key '/home/sage/.ssh/id_rsa':
Перечисление объектов: 5, готово.
Подсчет объектов: 100% (5/5), готово.
При сжатии изменений используется до 12 потоков
Сжатие объектов: 100% (3/3), готово.
Запись объектов: 100% (3/3), 424 байта | 424.00 КиБ/с, готово.
Всего 3 (изменений 1), повторно использовано 0 (изменений 0), повторно использовано пакетов 0
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:NikitkinTY/cs-lab02.git
020760b..5e40d05 main -> main
archlinux%



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

archlinux% git add main.cpp
archlinux% git commit -m 'code: добавлен вывод минимального минимального значения'
[main a89f6b6] code: добавлен вывод минимального минимального значения
1 file changed, 1 insertion(+)
archlinux% git push
Enter passphrase for key '/home/sage/.ssh/id_rsa':
To uit.mpei.ru:NikitkinTY/cs-lab02.git
! [rejected] main -> main (fetch first)
error: не удалось отправить некоторые ссылки в «uit.mpei.ru:NikitkinTY/cs-lab02.git»
подсказка: Обновления были отклонены, так как внешний репозиторий содержит
подсказка: изменения, которых у вас нет в вашем локальном репозитории.
подсказка: Обычно, это связанно с тем, что кто-то уже отправил изменения в
подсказка: то же место. Перед повторной отправкой ваших изменений, вам нужно
подсказка: забрать и слить изменения из внешнего репозитория себе
подсказка: (например, с помощью «git pull ...»).
подсказка: Для дополнительной информации, смотрите «Заметку о быстрой перемотке»
подсказка: в «git push --help».
archlinux%
archlinux%





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

archlinux% git fetch

Enter passphrase for key '/home/sage/.ssh/id_rsa':
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 2), reused 0 (delta 0), pack-reused 0
Распаковка объектов: 100% (6/6), 829 байтов | 829.00 КиБ/с, готово.
Из uit.mpei.ru:NikitkinTY/cs-lab02
70fe935..5e40d05 main -> origin/main
archlinux% git log --oneline --decorate --all --graph
* a89f6b6 (HEAD -> main) code: добавлен вывод минимального минимального значения
| * 5e40d05 (origin/main, origin/HEAD) code: исправлен вывод максимального значения
| * 020760b code: добавлен вывод максимума из чисел
|/
* 70fe935 code: добавлен вывод разности двух чисел
* c2aa84d code: добавлен вывод произведения чисел
* 9374e7a git
* 4bf99bf code: добавлен вывод разности чисел
* 76b205d code: добавлен вывод суммы чисел
* 1a522a3 code: добавлен ввод двух чисел
* 451a2b6 build: добавлен файл проекта
* 0f2fab6 code: заготовка программы
archlinux%





58. Попытался от лица Боба переместить свой коммит поверх коммита Алисы:

archlinux% git rebase origin/main
Автослияние main.cpp
КОНФЛИКТ (содержимое): Конфликт слияния в main.cpp
error: не удалось применить коммит a89f6b6... code: добавлен вывод минимального минимального значения
подсказка: Resolve all conflicts manually, mark them as resolved with
подсказка: "git add/rm <conflicted_files>", then run "git rebase --continue".
подсказка: You can instead skip this commit: run "git rebase --skip".
подсказка: To abort and get back to the state before "git rebase", run "git rebase --abort".
Не удалось применить коммит a89f6b6... code: добавлен вывод минимального минимального значения
archlinux% git status
интерактивное перемещение в процессе; над 5e40d05
Last command done (1 command done):
pick a89f6b6 code: добавлен вывод минимального минимального значения
Команд больше не осталось.
Вы сейчас перемещаете ветку «main» над «5e40d05».
(разрешите конфликты, затем запустите «git rebase --continue»)
(используйте «git rebase --skip», чтобы пропустить этот патч)
(используйте «git rebase --abort», чтобы перейти на оригинальную ветку)

Не слитые пути:
(используйте «git restore --staged <файл>...», чтобы убрать из индекса)
(используйте «git add <файл>...», чтобы пометить разрешение конфликта)
оба изменены: main.cpp

индекс пуст (используйте «git add» и/или «git commit -a»)
archlinux%


Пояснение к выведенной информации:

интерактивное перемещение в процессе; над 5e40d05 #Констатирование попытки переместится к последнему
#коммиту Алисы

Last command done (1 command done): #Вывод комманд сделанных в текущей ветке
pick a89f6b6 code: добавлен вывод минимального минимального значения
Команд больше не осталось.

Вы сейчас перемещаете ветку «main» над «5e40d05». #Констатация перемещения текущей ветки на новую
(разрешите конфликты, затем запустите «git rebase --continue») #с подсказками о разрешении конфликтов
(используйте «git rebase --skip», чтобы пропустить этот патч)
(используйте «git rebase --abort», чтобы перейти на оригинальную ветку)

Не слитые пути: #Вывод конфликтного файла
(используйте «git restore --staged <файл>...», чтобы убрать из индекса)
(используйте «git add <файл>...», чтобы пометить разрешение конфликта)
оба изменены: main.cpp

индекс пуст (используйте «git add» и/или «git commit -a»)





59. «На машине Боба» в CodeBlocks исправил код, добавил файл в индекс и продолжить прерванную операцию:

archlinux% git add main.cpp
archlinux% git rebase --continue
[отделённый HEAD 59c71d0] code: добавлен вывод минимального минимального значения
1 file changed, 1 insertion(+)
Успешно перемещён и обновлён refs/heads/main.
archlinux%





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

archlinux% git log --oneline --decorate --all --graph
* 59c71d0 (HEAD -> main) code: добавлен вывод минимального минимального значения
* 5e40d05 (origin/main, origin/HEAD) code: исправлен вывод максимального значения
* 020760b code: добавлен вывод максимума из чисел
* 70fe935 code: добавлен вывод разности двух чисел
* c2aa84d code: добавлен вывод произведения чисел
* 9374e7a git
* 4bf99bf code: добавлен вывод разности чисел
* 76b205d code: добавлен вывод суммы чисел
* 1a522a3 code: добавлен ввод двух чисел
* 451a2b6 build: добавлен файл проекта
* 0f2fab6 code: заготовка программы
archlinux%





61. "На машине Алисы" создал ветку double, переключился на неё, изменил в main.cpp тип переменных,
сделал коммит и вернулся облратно на ветку origin/main.

archlinux% git add main.cpp
archlinux% git commit -m 'code: изменен тип чисел с целых на действительные'
[double c2288f3] code: изменен тип чисел с целых на действительные
1 file changed, 1 insertion(+), 1 deletion(-)
archlinux% git checkout main
Переключились на ветку «main»
Эта ветка соответствует «origin/main».
archlinux%





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

archlinux% git status
Текущая ветка: main
Эта ветка соответствует «origin/main».

нечего коммитить, нет изменений в рабочем каталоге
archlinux% git log --oneline --decorate --all --graph

* c2288f3 (double) code: изменен тип чисел с целых на действительные
* 5e40d05 (HEAD -> main, origin/main) code: исправлен вывод максимального значения
* 020760b code: добавлен вывод максимума из чисел
* 70fe935 code: добавлен вывод разности двух чисел
* c2aa84d code: добавлен вывод произведения чисел
* 9374e7a git
* 4bf99bf code: добавлен вывод разности чисел
* 76b205d code: добавлен вывод суммы чисел
* 1a522a3 code: добавлен ввод двух чисел
* 451a2b6 build: добавлен файл проекта
* 0f2fab6 code: заготовка программы
archlinux%





63. Сделал слияние ветки double и main:

archlinux% git merge double
Обновление 5e40d05..c2288f3
Fast-forward
main.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

archlinux% git log --oneline --decorate --all --graph
* c2288f3 (HEAD -> main, origin/main, double) code: изменен тип чисел с целых на действительные
* 5e40d05 code: исправлен вывод максимального значения
* 020760b code: добавлен вывод максимума из чисел
* 70fe935 code: добавлен вывод разности двух чисел
* c2aa84d code: добавлен вывод произведения чисел
* 9374e7a git
* 4bf99bf code: добавлен вывод разности чисел
* 76b205d code: добавлен вывод суммы чисел
* 1a522a3 code: добавлен ввод двух чисел
* 451a2b6 build: добавлен файл проекта
* 0f2fab6 code: заготовка программы