diff --git a/ОтчётЛР2.txt b/ОтчётЛР2.txt new file mode 100644 index 0000000..24516be --- /dev/null +++ b/ОтчётЛР2.txt @@ -0,0 +1,904 @@ +Федеральное государственное бюджетное образовательное учреждение высшего образования «Национальный исследовательский университет «МЭИ» +Институт информационных и вычислительных технологий +Кафедра Управления и интеллектуальных технологий + + + + + +Дисциплина: +Разработка программного обеспечения систем управления + +Лабораторная работа №2 +Система контроля версий Git + + + + + + + + + + + +Выполнил студент группы +А-02-24 +Гнеушева Елизавета Михайловна +Вариант: - +Проверил + Козлюк Дмитрий Александрович + +Москва 2025 +• Вход в терминал и создание структуры каталогов +1. Создала на рабочем столе каталог lab02 и запустила в нём Git Bash, приглашение: +Лиза@MSI MINGW64 ~/Desktop/lab02 +$ +2. Посмотрела файлы в рабочем каталоге командой ls-пусто: +Лиза@MSI MINGW64 ~/Desktop/lab02 +$ ls +3. Создала каталоги Алисы и Боба, изучила команду cd: +Лиза@MSI MINGW64 ~/Desktop/lab02 +$ mkdir alice + +Лиза@MSI MINGW64 ~/Desktop/lab02 +$ mkdir bob + +Лиза@MSI MINGW64 ~/Desktop/lab02 +$ cd alice + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice +$ mkdir project + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice +$ cd project + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project +$ cd .. + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice +$ cd project +• Инициализация репозитария и настройка Git +4. Инициализировала хранилище Git +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project +$ git init +Initialized empty Git repository in C:/Users/Лиза/Desktop/lab02/alice/project/.git/ +5. Настроила репозитарий Алисы +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master) +$ git config user.name 'Alice (GneushevaYM)' + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master) +$ git config user.email 'GneushevaYM@mpei.ru' +• Занесение файлов под контроль версий +6. Посмотрела состояние рабочей копии +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master) +$ git status +On branch master + +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) + +Строка 1 : указывает на ветку +Строка 2 : говорит о том что коммиты ещё не были созданы +Строка 3 : показывает неотслеживаемые файлы и подсказывает как их добавить +Строка 4 : говорит о том что нет отслеживаемых файлов, которые можно закоммитить + +7. Начала отслеживать main.cpp (занесла под git) +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master) +$ git add main.cpp + +8. Посмотрела состояние рабочей копии +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master) +$ git status +On branch master + +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 + +Появилась строка с файлом, который можно закоммитить, т.к. мы начали его отслеживать. + +9. Создала коммит + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master) +$ git commit -m 'code: заготовка программы' +[master (root-commit) ad359ee] code: заготовка программы + 1 file changed, 9 insertions(+) + create mode 100644 main.cpp + +10. Поменяла название ветки на main + Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master) + $ git branch -m main +• Составление сообщений к коммитам + +11. Занесла под git project.cbp +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add project.cbp + +12. Создала коммит +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'build: добавлен файл проекта' +[master 9e53f4d] build: добавлен файл проекта + 1 file changed, 40 insertions(+) + create mode 100644 project.cbp +• Создание коммитов с изменениями + +13. Посмотрела состояние после замены на ввод двух чисел +Лиза@MSI MINGW64 ~/Desktop/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") + +Появилась строчка, указывающая на измененные файлы, изменения которых не закоммичены. В ситуации с добавлением нового файла строка указывала на файл, который можно коммитить. + +14. Сделала коммиты 3 разными способами: +А) Выбрала файл, изменения которого должны войти в коммит, затем сделала коммит: + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m "code: добавлен ввод двух чисел" +[main 461f52b] code: добавлен ввод двух чисел + 1 file changed, 4 insertions(+), 2 deletions(-) + +Б) Добавила в индекс все изменения, затем сделала коммит: + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add -u + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m "code: добавлен вывод суммы 2х чисел" +[main 696d24a] code: добавлен вывод суммы 2х чисел + 1 file changed, 1 insertion(+), 1 deletion(-) + +В) Добавила все изменения в индекс и сделать коммит в один шаг: + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -a -m "code: добавлен вывод разности 2х чисел" +[main 66cb077] code: добавлен вывод разности 2х чисел + 1 file changed, 2 insertions(+), 1 deletion(-) + +• Игнорирование файлов + +15. Создала файл gitignore и сделала коммит: + +Лиза@MSI MINGW64 ~/Desktop/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) + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add .gitignore + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'git: добавлен файл игнорирования' +[main a2d60c5] git: добавлен файл игнорирования + 1 file changed, 3 insertions(+) + +• Работа с журналом репозитария +16. Посмотрела журнал репозитария 3 способами: + +А) git log –stat +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --stat +commit a2d60c59a7260ad8e1d7aaadd5036880f5b84edd (HEAD -> main) +Author: Alice (GneushevaYM) +Date: Tue Apr 1 17:57:18 2025 +0300 + + git: добавлен файл игнорирования + + .gitignore | 3 +++ + 1 file changed, 3 insertions(+) + +commit 66cb077519f330f50987cc39a36a9753da276db5 +Author: Alice (GneushevaYM) +Date: Tue Apr 1 17:54:10 2025 +0300 + + code: добавлен вывод разности 2х чисел + + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 696d24a57ce7cf26ab520bd7acd3a5b000ec5e19 +Author: Alice (GneushevaYM) +Date: Tue Apr 1 17:53:12 2025 +0300 + + code: добавлен вывод суммы 2х чисел + +commit 461f52b8dc8baf0dd84671062213c89007e59279 +Author: Alice (GneushevaYM) +: + +Для последнего коммита показывается его хэш; автор; дата; сам коммит; перечисление файлов, в которых произошли изменения и кол-во измененных строчек(“+” добавленная стр., “-” удаленная стр.). +В последней стр. приведена статистика изменений данных файлов. + +Б) git log --oneline –decorate + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate +a2d60c5 (HEAD -> main) git: добавлен файл игнорирования +66cb077 code: добавлен вывод разности 2х чисел +696d24a code: добавлен вывод суммы 2х чисел +461f52b code: добавлен ввод двух чисел +9e53f4d build: добавлен файл проекта +ad359ee code: заготовка программы + + В) git log --oneline --decorate --all –graph + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* a2d60c5 (HEAD -> main) git: добавлен файл игнорирования +* 66cb077 code: добавлен вывод разности 2х чисел +* 696d24a code: добавлен вывод суммы 2х чисел +* 461f52b code: добавлен ввод двух чисел +* 9e53f4d build: добавлен файл проекта +* ad359ee code: заготовка программы + + +17. Поиск коммитов по теме build: + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --grep "build:" +commit 9e53f4d758f61b8e2e53c20af751ae1c1af6460e +Author: Alice (GneushevaYM) +Date: Tue Apr 1 17:46:21 2025 +0300 + + build: добавлен файл проекта + +18. Поиск коммитов, затрагивающих project.cbp + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log -- project.cbp +commit 9e53f4d758f61b8e2e53c20af751ae1c1af6460e +Author: Alice (GneushevaYM) +Date: Tue Apr 1 17:46:21 2025 +0300 + + build: добавлен файл проекта + + +• Просмотр коммитов + +19. Посмотрела предпоследний коммит + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git show HEAD~1 +commit 66cb077519f330f50987cc39a36a9753da276db5 +Author: Alice (GneushevaYM) +Date: Tue Apr 1 17:54:10 2025 +0300 + + code: добавлен вывод разности 2х чисел + +diff --git a/main.cpp b/main.cpp +index 4364dbc..8435233 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,5 +7,6 @@ int main() + cout << "Enter A and B: "; + int a, b; + cin >> a >> b; +- cout << "A + B = " << a + b << '\n'; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + } + + +• Просмотр изменений + +20. Просмотрела изменения в рабочей копии + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git diff +diff --git a/main.cpp b/main.cpp +index 8435233..f372c78 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,7 +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'; + } + + +1 строка. Указывает, что сравниваются две версии файла main.cpp +2 строка. Хеши состояния файлов до и после изменений. +3 строка. Старая версия файла. +4 строка. Новая версия файла. +5 строка. -8,7 означает, что раньше блок кода занимал 7 строк, а теперь занимает 8. Изменение произошло в файле начиная с 8-й строки. Далее идет код и удаленные и добавленные строки. + + +21. Просмотрела изменения между самым первым коммитом и коммитом, добавляющим вывод разности. + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git diff HEAD~5 HEAD~1 +diff --git a/main.cpp b/main.cpp +index b4392ec..8435233 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -4,6 +4,9 @@ using namespace std; + + int main() + { +- cout << "Hello world!" << endl; +- return 0; ++ cout << "Enter A and B: "; ++ int a, b; ++ cin >> a >> b; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + } +diff --git a/project.cbp b/project.cbp +new file mode 100644 +index 0000000..99bb702 +--- /dev/null ++++ b/project.cbp +@@ -0,0 +1,40 @@ ++ ++ ++ ++ ++ ++ + +• Откат изменений +22. Закоммитила вывод произведения. + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -a -m "code: добавлен вывод произведения 2х чисел" +[main 25db978] code: добавлен вывод произведения 2х чисел + 1 file changed, 2 insertions(+), 1 deletion(-) + +23. Сделала откат коммита к состоянию в последнем коммите + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git reset --hard HEAD~1 +HEAD is now at a2d60c5 git: добавлен файл игнорирования + +Далее добавила комментарий в коде. Коммит не был сделан. + + +24. Сделала откат изменений другим способом (к состоянию в последнем коммите). + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git checkout HEAD -- main.cpp + +Этим способом можно откатывать изменения отдельных файлов. + +• Обмен кодом через удалённое хранилище +25. Создание пары ключей + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ ssh-keygen +Generating public/private ed25519 key pair. +Enter file in which to save the key (/c/Users/Лиза/.ssh/id_ed25519): +/c/Users/Лиза/.ssh/id_ed25519 already exists. +Overwrite (y/n)? y +Enter passphrase for "/c/Users/Лиза/.ssh/id_ed25519" (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /c/Users/Лиза/.ssh/id_ed25519 +Your public key has been saved in /c/Users/Лиза/.ssh/id_ed25519.pub +The key fingerprint is: +SHA256:6cPTBKz4zCFfLcEUdzgnT+JKnwYkIedfYkt5uDIjwj4 Лиза@MSI +The key's randomart image is: ++--[ED25519 256]--+ +| . o.o.... | +| +.+.+=.o | +| .o@.oB | +| . . =o@. . | +| o + *.S+o. | +| . . B O.++ | +| E = =.. | +| . o | +| | ++----[SHA256]-----+ + + +26. Запустила агент + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ eval $(ssh-agent -s) +Agent pid 1658 +27. Загрузила ключ + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ ssh-add +Enter passphrase for /c/Users/Лиза/.ssh/id_ed25519: +Identity added: /c/Users/Лиза/.ssh/id_ed25519 (Лиза@MSI) + +28. Отобразила ключ + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ cat ~/.ssh/id_ed25519.pub +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF9HQ+6mA7CAc3EREyxo4vTjbYbsp5LK77gWTw/Dwe50 Лиза@MSI + +29. Настройка связи с удаленным хранилищем + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git remote add origin git@uit.mpei.ru:GneushevaYM/cs-lab02.git + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push -u origin main +Enumerating objects: 18, done. +Counting objects: 100% (18/18), done. +Delta compression using up to 12 threads +Compressing objects: 100% (16/16), done. +Writing objects: 100% (18/18), 2.39 KiB | 106.00 KiB/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 uit.mpei.ru:GneushevaYM/cs-lab02.git + * [new branch] main -> main +branch 'main' set up to track 'origin/main'. + +30. Отобразила адрес проекта + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git remote -v +origin git@uit.mpei.ru:GneushevaYM/cs-lab02.git (fetch) +origin git@uit.mpei.ru:GneushevaYM/cs-lab02.git (push) + + +Переключение на машину Боба +• Получение проекта с сервера +31. Клонирование проекта + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob +$ git clone git@uit.mpei.ru:GneushevaYM/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), 2.39 KiB | 74.00 KiB/s, done. +Resolving deltas: 100% (2/2), done. + +32. Переключение на каталог project + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob +$ cd project + +33. Настройка хранилища Боба + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git config user.name 'Bob (GneushevaYM)' + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git config user.email 'GneushevaYM@mpei.ru' + +• Совместная работа над проектом без конфликтов правок + +34. С машины Боба добавляются изменения в коде и делается коммит + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git commit -a -m "code: добавлен вывод произведения" +[main c4e479b] code: добавлен вывод произведения + 1 file changed, 2 insertions(+), 1 deletion(-) + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git show HEAD +commit c4e479bb8b1913261fca1e85089c4322bb18c842 (HEAD -> main) +Author: Bob (GneushevaYM) +Date: Tue Apr 1 18:23:14 2025 +0300 + + code: добавлен вывод произведения + +diff --git a/main.cpp b/main.cpp +index 8435233..73a1fa7 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,5 +8,6 @@ int main() + int a, b; + cin >> a >> b; + cout << "A + B = " << a + b << '\n' +- << "A - B = " << a - b << '\n'; ++ << "A - B = " << a - b << '\n' ++ << "A * B = " << a * b << '\n'; + } + +35. Отправка коммита Боба на сервер + +Лиза@MSI MINGW64 ~/Desktop/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), 425 bytes | 212.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:GneushevaYM/cs-lab02.git + a2d60c5..c4e479b main -> main + + +Переключение на машину Алисы +36. Загрузка изменений сделанных Бобом + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git fetch +Enter passphrase for key '/c/Users/Лиза/.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), 405 bytes | 23.00 KiB/s, done. +From uit.mpei.ru:GneushevaYM/cs-lab02 + a2d60c5..c4e479b main -> origin/main + +37. Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* c4e479b (origin/main, origin/HEAD) code: добавлен вывод произведения +* a2d60c5 (HEAD -> main) git: добавлен файл игнорирования +* 66cb077 code: добавлен вывод разности 2х чисел +* 696d24a code: добавлен вывод суммы 2х чисел +* 461f52b code: добавлен ввод двух чисел +* 9e53f4d build: добавлен файл проекта +* ad359ee code: заготовка программы + +Ветка main отстает на один коммит от ветки origin/main. + +38. Продвинула ветку main к скачанной версии: + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git pull --ff-only +Enter passphrase for key '/c/Users/Лиза/.ssh/id_ed25519': +Updating a2d60c5..c4e479b +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +39. С машины Алисы добавляется вывод деления в коде и делается коммит: + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -a -m "code: добавлен вывод деления" +[main 0b5e41d] code: добавлен вывод деления + 1 file changed, 2 insertions(+), 1 deletion(-) + +40. Коммит Алисы отправляется на сервер: + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push +Enter passphrase for key '/c/Users/Лиза/.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), 417 bytes | 208.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:GneushevaYM/cs-lab02.git + c4e479b..0b5e41d main -> main + +Переключение на машину Боба + +41. Загрузка изменений на машине Боба + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git fetch +remote: Enumerating objects: 5, done. +remote: Counting objects: 100% (5/5), done. +remote: Compressing objects: 100% (3/3), done. +remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 397 bytes | 18.00 KiB/s, done. +From uit.mpei.ru:GneushevaYM/cs-lab02 + c4e479b..0b5e41d main -> origin/main + +42. Продвижение ветки вперёд +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git pull --ff-only +Updating c4e479b..0b5e41d +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +• Разрешение конфликтов правок при совместной работе +На машине Алисы +43. В код добавляется вывод максимума и отправляется на сервер + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -a -m "code: добавлен вывод максимума" +[main 4e663ea] code: добавлен вывод максимума + 1 file changed, 4 insertions(+), 2 deletions(-) + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push +Enter passphrase for key '/c/Users/Лиза/.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), 462 bytes | 115.00 KiB/s, done. +Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0) +На машине Боба +44. В код добавляется вывод минимума и происходит попытка отправить коммит на сервер. Но выходит ошибка, т.к. Боб пытается загрузить версию, основанную на более старом коммите, чем самый новый коммит в репозитарии + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git commit -a -m "code: добавлен вывод минимума" +[main e083621] code: добавлен вывод минимума + 1 file changed, 3 insertions(+), 1 deletion(-) + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +To uit.mpei.ru:GneushevaYM/cs-lab02.git + ! [rejected] main -> main (fetch first) +error: failed to push some refs to 'uit.mpei.ru:GneushevaYM/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. + +45. Загрузка версии с сервера + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git fetch +remote: Enumerating objects: 5, done. +remote: Counting objects: 100% (5/5), done. +remote: Compressing objects: 100% (3/3), done. +remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 442 bytes | 17.00 KiB/s, done. +From uit.mpei.ru:GneushevaYM/cs-lab02 + 0b5e41d..4e663ea main -> origin/main + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* e083621 (HEAD -> main) code: добавлен вывод минимума +| * 4e663ea (origin/main, origin/HEAD) code: добавлен вывод максимума +|/ +* 0b5e41d code: добавлен вывод деления +* c4e479b code: добавлен вывод произведения +* a2d60c5 git: добавлен файл игнорирования +* 66cb077 code: добавлен вывод разности 2х чисел +* 696d24a code: добавлен вывод суммы 2х чисел +* 461f52b code: добавлен ввод двух чисел +* 9e53f4d build: добавлен файл проекта +* ad359ee code: заготовка программы + +46. Объединим коммиты Боба и Алисы, поместив коммит Боба выше с помощью команды git rebase + + $ git rebase origin/main +Auto-merging project/project.cpp +CONFLICT (content): Merge conflict in project/project.cpp +error: could not apply e083621... code: добавлен вывод минимума +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". +Could not apply e083621... code: добавлен вывод минимума + +Команда завершается ошибкой. Производный файл от файла Алисы и Боба записывается в рабочую копию с помеченными метками конфликта. Убираем метки конфликта, и дорабатываем код. + +47. Затем загружаем изменения в индекс и продолжаем операцию git rebase –continue. + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1) +$ git add -u + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1) +$ git status +interactive rebase in progress; onto 4e663ea +Last command done (1 command done): + pick e083621 code: добавлен вывод минимума +No commands remaining. +You are currently rebasing branch 'main' on '4e663ea'. + (all conflicts fixed: run "git rebase --continue") + +Changes to be committed: + (use "git restore --staged ..." to unstage) + modified: main.cpp + + +$ git rebase --continue +[detached HEAD b62310e] code: добавлен вывод минимума + 1 file changed, 4 insertions(+) +Successfully rebased and updated refs/heads/main. + +48. История хранилища + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* b62310e (HEAD -> main) code: добавлен вывод минимума +* 4e663ea (origin/main, origin/HEAD) code: добавлен вывод максимума +* 0b5e41d code: добавлен вывод деления +* c4e479b code: добавлен вывод произведения +* a2d60c5 git: добавлен файл игнорирования +* 66cb077 code: добавлен вывод разности 2х чисел +* 696d24a code: добавлен вывод суммы 2х чисел +* 461f52b code: добавлен ввод двух чисел +* 9e53f4d build: добавлен файл проекта +* ad359ee code: заготовка программы + +49. Отправила изменения на сервер + +Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +Enter passphrase for key '/c/Users/Лиза/.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), 449 bytes | 112.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:GneushevaYM/cs-lab02.git + 4e663ea..b62310e main -> main + + +• Использование веток +Пока Боб синхронизировал изменения, Алиса решила изменить тип чисел с целых на действительные. + +50. Создала ветку double и перешла на неё +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git branch double + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git checkout double +Switched to branch 'double' + +51. Закоммитила изменения + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (double) +$ git add -u + + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (double) +$ git commit -m 'code: тип данных изменен на double' +[double 336f466] code: тип данных изменен на double + 1 file changed, 4 insertions(+), 2 deletions(-) + +52. Переключилась на ветку main + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (double) +$ git checkout main +Switched to branch 'main' +Your branch is up to date with 'origin/main'. + +53. Синхронизация ветки main «на машине Алисы» с сервером. + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git fetch +Enter passphrase for key '/c/Users/Лиза/.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), 429 bytes | 20.00 KiB/s, done. +From uit.mpei.ru:GneushevaYM/cs-lab02 + 4e663ea..b62310e main -> origin/main +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git pull --ff-only +Enter passphrase for key '/c/Users/Лиза/.ssh/id_ed25519': +Updating 4e663ea..b62310e +Fast-forward + main.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 336f466 (double) code: тип данных изменен на double +| * b62310e (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод минимума +|/ +* 4e663ea code: добавлен вывод максимума +* 0b5e41d code: добавлен вывод деления +* c4e479b code: добавлен вывод произведения +* a2d60c5 git: добавлен файл игнорирования +* 66cb077 code: добавлен вывод разности 2х чисел +* 696d24a code: добавлен вывод суммы 2х чисел +* 461f52b code: добавлен ввод двух чисел +* 9e53f4d build: добавлен файл проекта +* ad359ee code: заготовка программы + +54. Объединяем ветки с помощью git merge + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git merge double +Auto-merging main.cpp +Merge made by the 'ort' strategy. + main.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +55. Отправляем на сервер + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push +Enter passphrase for key '/c/Users/Лиза/.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), 739 bytes | 246.00 KiB/s, done. +Total 6 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0) +remote: . Processing 1 references +remote: Processed 1 references in total +To uit.mpei.ru:GneushevaYM/cs-lab02.git + b62310e..41c07d7 main -> main + +56. История всех веток + +Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 41c07d7 (HEAD -> main, origin/main, origin/HEAD) Merge branch 'double' +|\ +| * 336f466 (double) code: тип данных изменен на double +* | b62310e code: добавлен вывод минимума +|/ +* 4e663ea code: добавлен вывод максимума +* 0b5e41d code: добавлен вывод деления +* c4e479b code: добавлен вывод произведения +* a2d60c5 git: добавлен файл игнорирования +* 66cb077 code: добавлен вывод разности 2х чисел +* 696d24a code: добавлен вывод суммы 2х чисел +* 461f52b code: добавлен ввод двух чисел +* 9e53f4d build: добавлен файл проекта +* ad359ee code: заготовка программы + + +