diff --git a/README.md b/README.md new file mode 100644 index 0000000..08447e0 --- /dev/null +++ b/README.md @@ -0,0 +1,1171 @@ +# Отчет по лабораторной работе № 2 «Система контроля версий Git» + +Выполнил: Мордашов С. A \ +Группа: А-01-24 \ +Проверил: - + +Примечание: работа выполнялась на Windows. + +1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: + +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ +``` + +2. Просмотрел файлы в рабочем каталоге можно командой `ls` — пусто: + +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ ls + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ +``` + +3. Создал каталоги Алисы и Боба, создал каталог `project`, +изучил команду `cd` в процессе: + +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ mkdir alice + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ mkdir bob + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ cd bob + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob +$ cd .. + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ cd alice + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice +$ mkdir project + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice +$ ls +project/ + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice +$ cd project +``` + +4. Инициализировал репозитарий: + +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project +$ git init +Initialized empty Git repository in C:/Users/Mi/OneDrive/Рабочий стол/lab02/alice/project/.git/ +``` + +У меня имя ветки по умолчанию не настроено. +Git создал ветку под названием `master`, что видно в приглашении терминала. По описанию из методички должна была появиться подсказка `hint:` для изменения имени, но в моей версии `Git-2.48.1-64-bit` она не высветилась. + +5. Изменим имя ветки `master`, на `main` для удобства. Применим команду `git branch -m main`, а затем проверим, создался ли репозиторий, c помощью команды `ls -A`: + +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) +$ git branch -m main + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ ls -A +.git/ + +``` + +6. Настроим репозитарий Алисы, чтобы коммиты были от ее имени: + +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git config user.name 'Alice (MordashovSA)' +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git config user.email 'MordashovSA@mpei.ru' +``` + +7. Запустил CodeBlocks и создал проект в репозитарии Алисы: + +##### Параметры были выбраны такие: + +Project title: `project` +Folder to create project in: `C:\Users\Mi\OneDrive\Рабочий стол\lab02\alice` +Project filename: `project.cbp` +Resulting filename: `C:\Users\Mi\OneDrive\Рабочий стол\lab02\alice\project\project.cbp` + +##### Структура файлов выглядит таким образом: + +``` +lab02 +├── alice +│ └── project <--------- текущий рабочий каталог +│ ├── .git <--------- создан командой "git init" +│ ├── bin <--------- создан CodeBlocks при сборке +│ ├── obj <--------- (то же самое) +│ ├── main.cpp <-- код программы +│ └── project.cbp <-- файл проекта +└── bob + +``` +8. Вернувшись в Git Bash, просмотрим состояние рабочей копии: +``` + Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git status +On branch main - выведена информация о текущей ветке main + +No commits yet - в базу данных не помещено ни одного коммита + +Untracked files: + (use "git add ..." to include in what will be committed) + bin/ + main.cpp + obj/ + project.cbp + +nothing added to commit but untracked files present (use "git add" to track) - чтобы включить неотслеживаемый файл в коммит, нужно использовать команду git add. +``` +9. Добавим файл main.cpp в индекс и закомили его: +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add main.cpp +``` +проверили внесение файла: +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git status +On branch main + +No commits yet + +Changes to be committed: + (use "git rm --cached ..." to unstage) + new file: main.cpp + +Untracked files: + (use "git add ..." to include in what will be committed) + bin/ + obj/ + project.cbp +``` +закоммили: +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -m 'code: заготовка программы' +[main (root-commit) 1476d9a] code: заготовка программы + 1 file changed, 9 insertions(+) + create mode 100644 main.cpp + +``` +аналогично с project.cbp: +``` +Mi@DESKTOP-F1KO4G0 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 + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git status +On branch main +Changes to be committed: + (use "git restore --staged ..." to unstage) + new file: project.cbp + +Untracked files: + (use "git add ..." to include in what will be committed) + bin/ + obj/ + + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -m 'build: | add project file' +[main 0f25a14] build: | add project file + 1 file changed, 38 insertions(+) + create mode 100644 project.cbp +``` +10. Различия между случаем, когда добавлялся новый файл, и когда изменился существующий +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git status +On branch main +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: main.cpp + +Untracked files: + (use "git add ..." to include in what will be committed) + bin/ + obj/ + +no changes added to commit (use "git add" and/or "git commit -a") + +``` +11. Закомим main.cpp снова 1 способом (ввод a, b): + +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add main.cpp +git commit -m "..." +[main f6890c8] ... + 1 file changed, 4 insertions(+), 1 deletion(-) + +``` +12. Коммим ещё a+b +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git status +On branch main +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: main.cpp + +Untracked files: + (use "git add ..." to include in what will be committed) + bin/ + obj/ + +no changes added to commit (use "git add" and/or "git commit -a") + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add -u `git add -u — это команда для подготовки к коммиту только изменённых и удалённых файлов, но не любых неотслеживаемых файлов.` +git commit -m "..." +[main 014403c] ... + 1 file changed, 1 insertion(+) + +``` +13. Коммим ещё и a-b : +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git status +On branch main +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: main.cpp + +Untracked files: + (use "git add ..." to include in what will be committed) + bin/ + obj/ + +no changes added to commit (use "git add" and/or "git commit -a") + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -a -m "..." - `— это команда в системе контроля версий Git, которая позволяет пропустить этап подготовки (с помощью git add) для изменённых файлов и зафиксировать их за один шаг.` +[main cc90111] ... + 1 file changed, 2 insertions(+), 2 deletions(-) + +``` +14. Игнорирование файлов католога project c помощью .gitignore, и его занесение в git (создание коммита) +Содержимое .gitignore: +/bin +/obj +/project.layout +/project.depend +занесение: +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git status +On branch main +Untracked files: + (use "git add ..." to include in what will be committed) + .gitignore + +nothing added to commit but untracked files present (use "git add" to track) + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add .gitignore + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git status +On branch main +Changes to be committed: + (use "git restore --staged ..." to unstage) + new file: .gitignore + + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -m 'git' +[main c4878e1] git + 1 file changed, 4 insertions(+) + create mode 100644 .gitignore + +``` +15. Просмотрели журнал коммитов 3-мя способами: +1-й: +``` +$ git log --stat +commit c4878e158000087a27662e5a55388a9cd244ad96 (HEAD -> main) (отображается хэш-номер, а также имя ветки проекта) +Author: Alice (MordashovSA) +Date: Sun Apr 6 20:24:33 2025 +0300 + + git + + .gitignore | 4 ++++ + 1 file changed, 4 insertions(+) (1 файл изменён 4 строки добавилось) + +commit cc90111dc34b722e8e951c1cf0b683e126dfa291 +Author: Alice (MordashovSA) +Date: Sun Apr 6 20:03:59 2025 +0300 + + ... + + main.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 014403c534015ce10bf1b4b69d463c01f8f9aa67 +Author: Alice (MordashovSA) +Date: Sun Apr 6 20:00:49 2025 +0300 + + ... + + main.cpp | 1 + + 1 file changed, 1 insertion(+) + +commit f6890c870a1ff096e73560a40678989657bd648a +Author: Alice (MordashovSA) +Date: Sun Apr 6 19:52:51 2025 +0300 + + ... + + main.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit 0f25a148357a7e6fdf687323837f6ece7069bc1d +Author: Alice (MordashovSA) +Date: Sun Apr 6 19:40:23 2025 +0300 + + build: | add project file + + project.cbp | 38 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 38 insertions(+) + +commit 1476d9a862ab4e6fb4e1fd013aef853737b4f318 +Author: Alice (MordashovSA) +Date: Sun Apr 6 19:32:23 2025 +0300 + + code: заготовка программы + + main.cpp | 9 +++++++++ + 1 file changed, 9 insertions(+) +``` +2-ым: +``` +$ git log --oneline --decorate +c4878e1 (HEAD -> main) git +cc90111 ... +014403c ... +f6890c8 ... +0f25a14 build: | add project file +1476d9a code: заготовка программы +``` +3-м: +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* c4878e1 (HEAD -> main) git +* cc90111 ... +* 014403c ... +* f6890c8 ... +* 0f25a14 build: | add project file +* 1476d9a code: заготовка программы +``` +Несколько полезных функций: +1) +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log -- main.cpp +commit cc90111dc34b722e8e951c1cf0b683e126dfa291 +Author: Alice (MordashovSA) +Date: Sun Apr 6 20:03:59 2025 +0300 + + ... + +commit 014403c534015ce10bf1b4b69d463c01f8f9aa67 +Author: Alice (MordashovSA) +Date: Sun Apr 6 20:00:49 2025 +0300 + + ... + +commit f6890c870a1ff096e73560a40678989657bd648a +Author: Alice (MordashovSA) +Date: Sun Apr 6 19:52:51 2025 +0300 + + ... + +commit 1476d9a862ab4e6fb4e1fd013aef853737b4f318 +Author: Alice (MordashovSA) +Date: Sun Apr 6 19:32:23 2025 +0300 + + code: заготовка программы + +``` +2) +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --grep "code:" +commit 1476d9a862ab4e6fb4e1fd013aef853737b4f318 +Author: Alice (MordashovSA) +Date: Sun Apr 6 19:32:23 2025 +0300 + + code: заготовка программы +``` +коммиты по теме build, затем коммиты, затрагивающие project.cbp: +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --grep "build:" +commit 0f25a148357a7e6fdf687323837f6ece7069bc1d +Author: Alice (MordashovSA) +Date: Sun Apr 6 19:40:23 2025 +0300 + + build: | add project file + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log -- project.cbp +commit 0f25a148357a7e6fdf687323837f6ece7069bc1d +Author: Alice (MordashovSA) +Date: Sun Apr 6 19:40:23 2025 +0300 + + build: | add project file +``` +17. просмотр в gitbash самих коммитов + 1 C помощью HEAD , а потом с помощью названия ветки просмотрим последний коммит +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git show HEAD +commit c4878e158000087a27662e5a55388a9cd244ad96 (HEAD -> main) +Author: Alice (MordashovSA) +Date: Sun Apr 6 20:24:33 2025 +0300 + + git + +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..df212eb +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,4 @@ ++/bin ++/obj ++/project.layout ++/project.depend + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git show main +commit c4878e158000087a27662e5a55388a9cd244ad96 (HEAD -> main) +Author: Alice (MordashovSA) +Date: Sun Apr 6 20:24:33 2025 +0300 + + git + +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..df212eb +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,4 @@ ++/bin ++/obj ++/project.layout ++/project.depend +``` +предпоследний коммит: +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git show cc90111 +commit cc90111dc34b722e8e951c1cf0b683e126dfa291 +Author: Alice (MordashovSA) +Date: Sun Apr 6 20:03:59 2025 +0300 + + ... + +diff --git a/main.cpp b/main.cpp +index dec99f2..5371b30 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,7 +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; + } + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git show HEAD~1 +commit cc90111dc34b722e8e951c1cf0b683e126dfa291 +Author: Alice (MordashovSA) +Date: Sun Apr 6 20:03:59 2025 +0300 + + ... + +diff --git a/main.cpp b/main.cpp +index dec99f2..5371b30 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,7 +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; + } +``` +18. Некторые команды git diff: +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git diff +diff --git a/main.cpp b/main.cpp +index 5371b30..15a93c2 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,6 +8,8 @@ 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; + } + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git diff HEAD~2 +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..df212eb +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,4 @@ ++/bin ++/obj ++/project.layout ++/project.depend +diff --git a/main.cpp b/main.cpp +index dec99f2..15a93c2 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,7 +7,9 @@ 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' ++ << "A * B = " << a * b << '\n'; + + return 0; + } + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git diff HEAD~2 HEAD +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..df212eb +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,4 @@ ++/bin ++/obj ++/project.layout ++/project.depend +diff --git a/main.cpp b/main.cpp +index dec99f2..5371b30 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,7 +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; + } +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git diff HEAD~5 HEAD~1 +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 @@ ++ ++ ++ ++ ++ ++ +``` +19. Откат изменений 2-мя способами: +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add main.cpp +git commit -m "product" +[main 9ad4bf4] product + 1 file changed, 3 insertions(+), 1 deletion(-) + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git show HEAD +commit 9ad4bf44cfcd517f8c51a1701db2cc6bf9bf861e (HEAD -> main) +Author: Alice (MordashovSA) +Date: Sun Apr 6 22:38:48 2025 +0300 + + product + +diff --git a/main.cpp b/main.cpp +index 5371b30..15a93c2 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,6 +8,8 @@ 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; + } + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git reset --hard HEAD~1 +HEAD is now at c4878e1 git + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git checkout HEAD -- main.cpp +``` +20. Выгрузка на сервер +``` + +``` +21. Восстание боба +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob +$ git clone git@uit.mpei.ru:MordashovSA/cs-lab02.git project +Cloning into 'project'... +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +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. + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob +$ cd project + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git config user.name 'Bob (MordashovSA)' + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git config user.email 'MordashovSA@mpei.ru' + +``` +23. Сначала вносит изменения в проект боб , а потом алиса +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git add main.cpp + + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git commit -m "product bob" +[main 3937477] product bob + 1 file changed, 2 insertions(+), 1 deletion(-) + + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git push +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +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), 366 bytes | 183.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 uit.mpei.ru:MordashovSA/cs-lab02.git + c4878e1..3937477 main -> main + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ cd alice + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice +$ cd project + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git fetch +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +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), 346 bytes | 10.00 KiB/s, done. +From uit.mpei.ru:MordashovSA/cs-lab02 + c4878e1..3937477 main -> origin/main + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 3937477 (origin/main, origin/HEAD) product bob +* c4878e1 (HEAD -> main) git +* cc90111 ... +* 014403c ... +* f6890c8 ... +* 0f25a14 build: | add project file +* 1476d9a code: заготовка программы + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git pull --ff-only +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +Updating c4878e1..3937477 +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add main.cpp + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -m "delenie bob" +[main a484402] delenie bob + 1 file changed, 2 insertions(+), 1 deletion(-) + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git push +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +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), 386 bytes | 193.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 uit.mpei.ru:MordashovSA/cs-lab02.git + 3937477..a484402 main -> main + + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ cd bob + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob +$ cd project + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git fetch +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +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), 366 bytes | 8.00 KiB/s, done. +From uit.mpei.ru:MordashovSA/cs-lab02 + 3937477..a484402 main -> origin/main + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* a484402 (origin/main, origin/HEAD) delenie bob +* 3937477 (HEAD -> main) product bob +* c4878e1 git +* cc90111 ... +* 014403c ... +* f6890c8 ... +* 0f25a14 build: | add project file +* 1476d9a code: заготовка программы + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git pull --ff-only +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +Updating 3937477..a484402 +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +``` +24. Разрешение конфликтов правок при совместной работе: +``` + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add main.cpp + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -m "max alice" +[main ad602cf] max alice + 1 file changed, 6 insertions(+) + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git push +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +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), 409 bytes | 409.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 uit.mpei.ru:MordashovSA/cs-lab02.git + a484402..ad602cf main -> main + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ cd bob + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob +$ cd project + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git add main.cpp + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git commit -m "min bob" +[main 5c71966] min bob + 1 file changed, 6 insertions(+) + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git push +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +To uit.mpei.ru:MordashovSA/cs-lab02.git + ! [rejected] main -> main (fetch first) +error: failed to push some refs to 'uit.mpei.ru:MordashovSA/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. + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git fetch +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +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), 389 bytes | 38.00 KiB/s, done. +From uit.mpei.ru:MordashovSA/cs-lab02 + a484402..ad602cf main -> origin/main + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* 5c71966 (HEAD -> main) min bob +| * ad602cf (origin/main, origin/HEAD) max alice +|/ +* a484402 delenie bob +* 3937477 product bob +* c4878e1 git +* cc90111 ... +* 014403c ... +* f6890c8 ... +* 0f25a14 build: | add project file +* 1476d9a code: заготовка программы + +Mi@DESKTOP-F1KO4G0 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 09cc3de... min bob +hint: Resolve all conflicts manually, mark them as resolved with +hint: "git add/rm ", 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". +hint: Disable this message with "git config set advice.mergeConflict false" +Could not apply 09cc3de... min bob + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|REBASE 1/1) +$ git pull --ff-only +error: Pulling is not possible because you have unmerged files. +hint: Fix them up in the work tree, and then use 'git add/rm ' +hint: as appropriate to mark resolution and make a commit. +fatal: Exiting because of an unresolved conflict. + + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git pull --ff-only +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +hint: Diverging branches can't be fast-forwarded, you need to either: +hint: +hint: git merge --no-ff +hint: +hint: or: + + + + + + + + + + + + + + + + + + + + + + + +E325: ATTENTION +Found a swap file by the name "~/OneDrive/Рабочий стол/lab02/bob/project/.git/.COMMIT_EDITMSG.swp" + owned by: Mi dated: Mon Apr 07 04:23:47 2025 + + + + + + + +min bob + + + + + + + + + + + + + + + + + + + + + + + +[detached HEAD 0db9b80] min bob + 1 file changed, 6 insertions(+) +Successfully rebased and updated refs/heads/main. + + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git push +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +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), 382 bytes | 382.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 uit.mpei.ru:MordashovSA/cs-lab02.git + ad602cf..0db9b80 main -> main +``` +25. Слияние веток: +``` +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git checkout double +error: pathspec 'double' did not match any file(s) known to git + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git branch double + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git checkout double +Switched to branch 'double' + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double) +$ git commit -a -m "double alice" +[double a1421a6] double alice + 1 file changed, 1 insertion(+), 1 deletion(-) + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double) +$ git show HEAD +commit a1421a61b4c8461165f0df96709de6025aa2a083 (HEAD -> double) +Author: Alice (MordashovSA) +Date: Thu Apr 10 20:34:10 2025 +0300 + + double alice + +diff --git a/main.cpp b/main.cpp +index 88e0a14..13d54db 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -5,7 +5,7 @@ using namespace std; + int main() + { + cout << "Enter A and B: "; +- int a, b; ++ double a, b; + cin >> a >> b; + cout << "A + B = " << a + b << '\n' + << "A - B = " << a - b << '\n' + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double) +$ git checkout MAIN +Switched to branch 'MAIN' + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (MAIN) +$ git checkout main +Switched to branch 'main' +Your branch is up to date with 'origin/main'. + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git checkout p +error: pathspec 'p' did not match any file(s) known to git + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git fetch +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +From uit.mpei.ru:MordashovSA/cs-lab02 + ad602cf..0db9b80 main -> origin/main + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git pull --ff-only +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': + + + + + + + + + + + + + + + + + + + + + + +Auto-merging main.cpp +Merge made by the 'ort' strategy. + main.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 5a70cef (HEAD -> main) Merge branch 'double' +|\ +| * a1421a6 (double) double alice +* | 0db9b80 (origin/main, origin/HEAD) min bob +|/ +* ad602cf max alice +* a484402 delenie bob +* 3937477 product bob +* c4878e1 git +* cc90111 ... +* 014403c ... +* f6890c8 ... +* 0f25a14 build: | add project file +* 1476d9a code: заготовка программы + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log +commit 5a70ceff0acfe5152459a231d1ea074cdf4356b6 (HEAD -> main) +Merge: 0db9b80 a1421a6 +Author: Alice (MordashovSA) +Date: Thu Apr 10 20:41:38 2025 +0300 + + Merge branch 'double' + +commit a1421a61b4c8461165f0df96709de6025aa2a083 (double) +Author: Alice (MordashovSA) +Date: Thu Apr 10 20:34:10 2025 +0300 + + double alice + +commit 0db9b808ba1f04a89d1c199a54073dd8bc670143 (origin/main, origin/HEAD) +Author: Bob (MordashovSA) +Date: Mon Apr 7 16:47:23 2025 +0300 + + min bob + +commit ad602cf9a45174cc22227cd21c8e7bd9972a9cb6 +Author: Alice (MordashovSA) +Date: Mon Apr 7 03:23:28 2025 +0300 + + +Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git push +Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519': +Enumerating objects: 10, done. +Counting objects: 100% (10/10), done. +Delta compression using up to 12 threads +Compressing objects: 100% (6/6), done. +Writing objects: 100% (6/6), 691 bytes | 172.00 KiB/s, done. +Total 6 (delta 2), reused 1 (delta 0), pack-reused 0 (from 0) +remote: . Processing 1 references +remote: Processed 1 references in total +To uit.mpei.ru:MordashovSA/cs-lab02.git + 0db9b80..5a70cef main -> main +``` + + +