Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Alice(PodolskyNK) 47578413b8
Merge branch 'double'
1 год назад
.gitignore build: git 1 год назад
README.txt README: отчет 1 год назад
main.cpp README: отчет 1 год назад
project.cbp code: печать деления a и b 1 год назад

README.txt

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




Выполнил: Подольский Н.К.
Группа: А-01-23

Проверил: Козлюк Д. А.



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



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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02
$




2. Смотрю файлы в рабочем каталоге с помощью команды "ls":

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02
$ ls

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02
$




3. Создаю каталоги Боба и Алисы, так же создаю каталог project, понимаем значение команды cd:

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir alice

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir bob

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd alice

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ mkdir project

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ cd project

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$ cd ..

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ cd project

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$




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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/nikit/OneDrive/Рабочий стол/lab02/alice/project/.git/

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master)
$




5. Меняем имя ветки на main:

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master)
$ git branch -m main

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$




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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.name 'Alice (PodolskyNK)'

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.email 'PodolskyNK@mpei.ru'

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$




7. Создаем проект в репозитарии Алисы и затем собираем его.




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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/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 // Файлы, находящиеся в папке "Alice"

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



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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/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 начал отслеживаться и будет закоммичен в следующей строке:

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "code: заготовка программы"
[main (root-commit) 2e4f819] code: заготовка программы
1 file changed, 9 insertions(+)
create mode 100644 main.cpp



10. Добавляю файл проекта project.cbp в индекс и делаю с ним коммит:

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "build: добавлен файл проекта"
[main e4848a1] build: добавлен файл проекта
1 file changed, 38 insertions(+)
create mode 100644 project.cbp



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

cout << "Enter A and B: ";

int a, b;

cin >> a >> b;



nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/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)
bin/
obj/

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


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "code: ввод чисел a и b"
[main fbcfd71] code: ввод чисел a и b
1 file changed, 7 insertions(+), 1 deletion(-)


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



int main()

{

...

cout << "A + B = " << a + b;

}


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add -u

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "code: вывод суммы a и b"
[main b6bd6a5] code: вывод суммы a и b
1 file changed, 2 insertions(+)


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


int main()

{

...

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

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

}


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m "code: вывод разности a и b"
[main 4bf3d06] code: вывод разности a и b
1 file changed, 3 insertions(+), 1 deletion(-)



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


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore

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


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add .gitignore

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "build: git"
[main cfd047d] build: git
1 file changed, 3 insertions(+)
create mode 100644 .gitignore



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


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log
commit cfd047dbeb0ecd2c00c2944e1ab9aa5e1e569eed (HEAD -> main)
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:55:04 2024 +0300

build: git

commit 4bf3d0635291d25f776c8afcc1a08eff2f739661
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:47:01 2024 +0300

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

commit b6bd6a56dc0896955ed9f1efa997e8086b1f8ac2
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:42:47 2024 +0300

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

commit fbcfd719efbca645992a6ca2ecc6070d9c62bd81
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:40:48 2024 +0300

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

commit a2da795db3886d2aa96b034191f44e1aec0ca546
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:20:10 2024 +0300

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

commit 330f92019e47d5bd25a9f0e8177ed373c0e59f7b
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Sun Apr 14 23:23:37 2024 +0300

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





nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --stat // Для последнего коммита:
commit cfd047dbeb0ecd2c00c2944e1ab9aa5e1e569eed (HEAD -> main)// Его хэш
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru> // Автор и его email
Date: Mon Apr 15 10:55:04 2024 +0300 // Дата

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

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

commit 4bf3d0635291d25f776c8afcc1a08eff2f739661
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:47:01 2024 +0300

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

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

commit b6bd6a56dc0896955ed9f1efa997e8086b1f8ac2
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:42:47 2024 +0300

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

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

commit fbcfd719efbca645992a6ca2ecc6070d9c62bd81
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:40:48 2024 +0300

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

main.cpp | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

commit a2da795db3886d2aa96b034191f44e1aec0ca546
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:20:10 2024 +0300

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

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

commit 330f92019e47d5bd25a9f0e8177ed373c0e59f7b





nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate
cfd047d (HEAD -> main) build: git
4bf3d06 code: вывод разности a и b
b6bd6a5 code: вывод суммы a и b
fbcfd71 code: ввод чисел a и b
a2da795 build: добавлен файл проекта
330f920 code: заготовка программы





nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* cfd047d (HEAD -> main) build: git
* 4bf3d06 code: вывод разности a и b
* b6bd6a5 code: вывод суммы a и b
* fbcfd71 code: ввод чисел a и b
* a2da795 build: добавлен файл проекта
* 330f920 code: заготовка программы





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


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --grep "build:"
commit cfd047dbeb0ecd2c00c2944e1ab9aa5e1e569eed (HEAD -> main)
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:55:04 2024 +0300

build: git

commit a2da795db3886d2aa96b034191f44e1aec0ca546
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:20:10 2024 +0300

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



nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log -- project.cbp
commit a2da795db3886d2aa96b034191f44e1aec0ca546
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:20:10 2024 +0300

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



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

1) git show HEAD~1

2) git show main~1

3) git show ecc914b



1) nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show HEAD~1
commit 4bf3d0635291d25f776c8afcc1a08eff2f739661
Author: Alice (PodolskyNK) <PodolskyNK@mpei.ru>
Date: Mon Apr 15 10:47:01 2024 +0300

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

diff --git a/main.cpp b/main.cpp
index 159ed60..4059f74 100644
--- a/main.cpp
+++ b/main.cpp
@@ -10,7 +10,9 @@ int main()

cin >> a >> b;

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

}



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


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff
diff --git a/main.cpp b/main.cpp
index 4059f74..38bf33c 100644
--- a/main.cpp
+++ b/main.cpp
@@ -12,7 +12,9 @@ int main()

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

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

return 0;



nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4d72a82
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/bin
+/obj
+/project.layout
diff --git a/main.cpp b/main.cpp
index 159ed60..38bf33c 100644
--- a/main.cpp
+++ b/main.cpp
@@ -10,7 +10,11 @@ int main()

cin >> a >> b;

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

return 0;


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~2 HEAD
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4d72a82
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/bin
+/obj
+/project.layout
diff --git a/main.cpp b/main.cpp
index 159ed60..4059f74 100644
--- a/main.cpp
+++ b/main.cpp
@@ -10,7 +10,9 @@ int main()

cin >> a >> b;

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

return 0;



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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff 330f920 4bf3d06
diff --git a/main.cpp b/main.cpp
index b4392ec..4059f74 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,6 +4,16 @@ 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" />
+ <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">
:





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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m "code: вывод произведения a и b"
[main d074b66] code: вывод произведения a и b
1 file changed, 3 insertions(+), 1 deletion(-)


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


1)
nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at cfd047d build: git

2)
nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout HEAD -- main.cpp

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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/nikit/.ssh/id_ed25519):
Created directory '/c/Users/nikit/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/nikit/.ssh/id_ed25519
Your public key has been saved in /c/Users/nikit/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:wjh/q7OVwVKYVnkZ2GgfW17aEKPfWTy33FI7SCb8+W4 nikit@onmyneck
The key's randomart image is:
+--[ED25519 256]--+
| .=.oo. |
| += *.o... |
| +..o.B B .=|
| + o o.B.=+*|
| o + S .++=.|
| o o o ...|
| . + . |
| .o . .E |
| o+. .. |
+----[SHA256]-----+


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ eval $(ssh-agent -s)
Agent pid 1705


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ ssh-add
Enter passphrase for /c/Users/nikit/.ssh/id_ed25519:
Identity added: /c/Users/nikit/.ssh/id_ed25519 (nikit@onmyneck)


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGVamnRFYjSamFWoSIvifW+4+4S3cMc+7gBFGKnsZvpJ nikit@onmyneck


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


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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git remote add origin http://uit.mpei.ru/git/PodolskyNK/cs-lab02.git

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push -u origin main
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 12 threads
Compressing objects: 100% (16/16), done.
Writing objects: 100% (18/18), 2.30 KiB | 2.30 MiB/s, done.
Total 18 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/PodolskyNK/cs-lab02.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.


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


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ git clone http://uit.mpei.ru/git/PodolskyNK/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.


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd project

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.name "Bob (PodolskyNK)"

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.email "PodolskyNK@mpei.ru"


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


int main()

{

...

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

}


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -a -m "code: печать произведения a и b"
[main fbe6777] code: печать произведения a и b
1 file changed, 3 insertions(+), 1 deletion(-)

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/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), 416 bytes | 416.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/PodolskyNK/cs-lab02.git
cfd047d..fbe6777 main -> main



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


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/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), 396 bytes | 56.00 KiB/s, done.
From http://uit.mpei.ru/git/PodolskyNK/cs-lab02
cfd047d..fbe6777 main -> origin/main

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* fbe6777 (origin/main) code: печать произведения a и b
* cfd047d (HEAD -> main) build: git
* 4bf3d06 code: вывод разности a и b
* b6bd6a5 code: вывод суммы a и b
* fbcfd71 code: ввод чисел a и b
* a2da795 build: добавлен файл проекта
* 330f920 code: заготовка программы

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git pull --ff-only
Updating cfd047d..fbe6777
Fast-forward
main.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)



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


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



nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m "code: печать деления a и b"
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
[main 2be476d] code: печать деления a и b
2 files changed, 4 insertions(+), 1 deletion(-)

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 12 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 462 bytes | 462.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/PodolskyNK/cs-lab02.git
fbe6777..2be476d main -> main


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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git fetch
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), 442 bytes | 22.00 KiB/s, done.
From http://uit.mpei.ru/git/PodolskyNK/cs-lab02
fbe6777..2be476d main -> origin/main

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 2be476d (origin/main, origin/HEAD) code: печать деления a и b
* fbe6777 (HEAD -> main) code: печать произведения a и b
* cfd047d build: git
* 4bf3d06 code: вывод разности a и b
* b6bd6a5 code: вывод суммы a и b
* fbcfd71 code: ввод чисел a и b
* a2da795 build: добавлен файл проекта
* 330f920 code: заготовка программы

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git pull --ff-only
Updating fbe6777..2be476d
Fast-forward
main.cpp | 4 +++-
project.cbp | 1 +
2 files changed, 4 insertions(+), 1 deletion(-)



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


int main()

{

...

<< "max(a, b) = " << max(a, b) << '\n';

}

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m "code: печать максимума из a и b"
[main 0b5d9c9] code: печать максимума из a и b
1 file changed, 4 insertions(+), 1 deletion(-)

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/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), 438 bytes | 438.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/PodolskyNK/cs-lab02.git
2be476d..0b5d9c9 main -> main


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

int main()

{

...

<< "min(a, b) = " << min(a, b) << '\n';

}


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -a -m "code: печать минимума из a и b"
[main 3e3f5b3] code: печать минимума из a и b
1 file changed, 4 insertions(+), 1 deletion(-)

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
To http://uit.mpei.ru/git/PodolskyNK/cs-lab02.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'http://uit.mpei.ru/git/PodolskyNK/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.


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


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/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), 418 bytes | 26.00 KiB/s, done.
From http://uit.mpei.ru/git/PodolskyNK/cs-lab02
2be476d..0b5d9c9 main -> origin/main

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --all
3e3f5b3 (HEAD -> main) code: печать минимума из a и b
0b5d9c9 (origin/main, origin/HEAD) code: печать максимума из a и b
2be476d code: печать деления a и b
fbe6777 code: печать произведения a и b
cfd047d build: git
4bf3d06 code: вывод разности a и b
b6bd6a5 code: вывод суммы a и b
fbcfd71 code: ввод чисел a и b
a2da795 build: добавлен файл проекта
330f920 code: заготовка программы


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


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git rebase origin/main
Auto-merging main.cpp
CONFLICT (content): Merge conflict in main.cpp
error: could not apply 3e3f5b3... 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 3e3f5b3... 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';

>>>>>>> 3e3f5b3 (code: печать минимума из a и b)

}

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|REBASE 1/1)
$ git add main.cpp

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|REBASE 1/1)
$ git rebase --continue
Successfully rebased and updated refs/heads/main.


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


nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --all
4ae5ab0 (HEAD -> main) code: печать минимума из a и b
0b5d9c9 (origin/main, origin/HEAD) code: печать максимума из a и b
2be476d code: печать деления a и b
fbe6777 code: печать произведения a и b
cfd047d build: git
4bf3d06 code: вывод разности a и b
b6bd6a5 code: вывод суммы a и b
fbcfd71 code: ввод чисел a и b
a2da795 build: добавлен файл проекта
330f920 code: заготовка программы

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/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), 513 bytes | 513.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/PodolskyNK/cs-lab02.git
0b5d9c9..4ae5ab0 main -> main


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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git branch double

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git commit -a -m "code: изменен тип a и b на double"
[double 4614aa5] code: изменен тип a и b на double
1 file changed, 1 insertion(+), 1 deletion(-)

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.


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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/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), 493 bytes | 30.00 KiB/s, done.
From http://uit.mpei.ru/git/PodolskyNK/cs-lab02
0b5d9c9..4ae5ab0 main -> origin/main

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 4614aa5 (double) code: изменен тип a и b на double
| * 4ae5ab0 (origin/main) code: печать минимума из a и b
|/
* 0b5d9c9 (HEAD -> main) code: печать максимума из a и b
* 2be476d code: печать деления a и b
* fbe6777 code: печать произведения a и b
* cfd047d build: git
* 4bf3d06 code: вывод разности a и b
* b6bd6a5 code: вывод суммы a и b
* fbcfd71 code: ввод чисел a и b
* a2da795 build: добавлен файл проекта
* 330f920 code: заготовка программы

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git pull --ff-only
Updating 0b5d9c9..4ae5ab0
Fast-forward
main.cpp | 4 ++++
1 file changed, 4 insertions(+)

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 4614aa5 (double) code: изменен тип a и b на double
| * 4ae5ab0 (HEAD -> main, origin/main) code: печать минимума из a и b
|/
* 0b5d9c9 code: печать максимума из a и b
* 2be476d code: печать деления a и b
* fbe6777 code: печать произведения a и b
* cfd047d build: git
* 4bf3d06 code: вывод разности a и b
* b6bd6a5 code: вывод суммы a и b
* fbcfd71 code: ввод чисел a и b
* a2da795 build: добавлен файл проекта
* 330f920 code: заготовка программы



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

nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/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(-)



nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main|MERGING)
$ git log --oneline --decorate --all --graph

* 4614aa5 (double) code: изменен тип a и b на double
| * 4ae5ab0 (HEAD -> main, origin/main) code: печать минимума из a и b
|/
* 0b5d9c9 code: печать максимума из a и b
* 2be476d code: печать деления a и b
* fbe6777 code: печать произведения a и b
* cfd047d build: git
* 4bf3d06 code: вывод разности a и b
* b6bd6a5 code: вывод суммы a и b
* fbcfd71 code: ввод чисел a и b
* a2da795 build: добавлен файл проекта
* 330f920 code: заготовка программы



nikit@onmyneck MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main|MERGING)
$ git log --oneline --decorate --all --graph
* 4614aa5 (double) code: изменен тип a и b на double
| * 4ae5ab0 (HEAD -> main, origin/main) code: печать минимума из a и b
|/
* 0b5d9c9 code: печать максимума из a и b
* 2be476d code: печать деления a и b
* fbe6777 code: печать произведения a и b
* cfd047d build: git
* 4bf3d06 code: вывод разности a и b
* b6bd6a5 code: вывод суммы a и b
* fbcfd71 code: ввод чисел a и b
* a2da795 build: добавлен файл проекта
* 330f920 code: заготовка программы