diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..e60de17 --- /dev/null +++ b/README.txt @@ -0,0 +1,807 @@ +Отчет по лабораторной работе № 2 "Система контроля версий Git" + +Выполнил: Жалнин В.Ю. +Группа: А-01-22 +Проверил: + +Примечание: работа выполнялась на Windows. + +1) Создал на рабочем столе каталог lab02.02 и запустил в нем Git Bash, приглашение: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 +$ + +2) Просмотрел файлы в рабочем каталоге командой "ls" - пусто: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 +$ ls + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 +$ + +3) Создал каталоги Алисы и Боба, создал каталог "project", +изучил команду "cd" в процессе: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 +$ mkdir alice + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 +$ mkdir bob + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 +$ cd alice + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice +$ mkdir project + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice +$ cd project + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project +$ cd .. + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice +$ cd project + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project +$ + +4) Инициализировал репозитарий, изменил имя ветки и через команду ls -A увидел его наличие: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project +$ git init +Initialized empty Git repository in C:/Users/ПК/Desktop/lab02/alice/project/.git/ + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (master) +$ git branch -m main + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ + +5) Настроил репозитарий, чтобы коммиты были от моего имени: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git config user.name 'Alice (ZhalninVY)' + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git config user.email 'ZhalninVY@mpei.ru' + + +6) Запустил CodeBlocks и создал проект в репозитарии Алисы: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git status + +On branch main + +No commits yet (нет файлов для коммита) + +Untracked files: (В рабочей копии замечен файл, но Git его не отслеживает.) + (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) + +7) Заношу файл main.cpp под Git + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +8) Закомитил файл main.cpp и короткое сообщение (в одинарных или двойных ковычках): + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: заготовка программы' +[main (root-commit) 70a6613] code: заготовка программы + 1 file changed, 9 insertions(+) + create mode 100644 main.cpp + + +9) Добавил файл project.cbp в индекс, закомитил его с комментарием: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add project.cbp +warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it + + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'build: добавлен файл проекта' +[main e80d54b] build: добавлен файл проекта + 1 file changed, 40 insertions(+) + create mode 100644 project.cbp + + +10) Использование команды $ git status после изменения файла main.cpp: + +ПК@DESKTOP-NNUUA3R 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") + +При сравнении случаев, когда добавлялся новый файл, и когда изменился существующий, можно заметить, что +в случае, когда файл был изменен после добавления в индекс, изменения необходимо закомитить отдельно. + +11) 1 способ закомитить изменения: + +Выбрать файлы, изменения которых должны войти в коммит, затем сделать коммит: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: добавлен ввод двух чисел' +[main 1036577] code: добавлен ввод двух чисел + 1 file changed, 4 insertions(+), 2 deletions(-) + + +12) 2 способ закомитить изменения: + +Добавить в индекс все изменения, затем сделать коммит: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add -u + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: добавлен вывод суммы' +[main cdfe6e6] code: добавлен вывод суммы + 1 file changed, 1 insertion(+) + + +13) 3 способ закомитить изенения: + +Добавить все изменения в индекс и сделать коммит в один шаг: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -a -m 'code: добавлен вывод разности' +[main 00a04ef] code: добавлен вывод разности + 1 file changed, 2 insertions(+), 1 deletion(-) + + +Удобен когда коммит меняет уже существующий файл. + +14) Игнорирование файлов: + +Создаем файл в codeblocks с подпись /bin, /obj и /project.layout в разных строках + +ПК@DESKTOP-NNUUA3R 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) + + +Как можно заметить, бинарные файлы bin, obj и project.layout пропали. + +Закомитим файл игнорирования: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add .gitignore + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'git: добавлен файл игнорирования' +[main 0b0f71a] git: добавлен файл игнорирования + 1 file changed, 3 insertions(+) + create mode 100644 .gitignore + + +15) Просмотрел коммиты репозитария: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --stat +commit 0b0f71a0b032c71d9996df35ffc6b42336bcbe0c (HEAD -> main) +Author: Alice (ZhalninVY) +Date: Sat May 20 19:19:42 2023 +0300 + + git: добавлен файл игнорирования + + .gitignore | 3 +++ + 1 file changed, 3 insertions(+) + +commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7 +Author: Alice (ZhalninVY) +Date: Sat May 20 19:12:59 2023 +0300 + + code: добавлен вывод разности + + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit cdfe6e61aa8d95bcae4bddabd20581bfbca09f49 +Author: Alice (ZhalninVY) +Date: Sat May 20 19:12:11 2023 +0300 + + code: добавлен вывод суммы + + main.cpp | 1 + + 1 file changed, 1 insertion(+) + +commit 10365779994a810cb539361509747a5832e596fb +Author: Alice (ZhalninVY) +Date: Sat May 20 19:11:14 2023 +0300 + + code: добавлен ввод двух чисел + + main.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit e80d54bbefde66975d12337c80b3b55975a986f3 +Author: Alice (ZhalninVY) +Date: Sat May 20 19:07:26 2023 +0300 + + build: добавлен файл проекта + + project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 40 insertions(+) + +commit 70a6613e8627d6238d356e93413ed72351145cb5 +Author: Alice (ZhalninVY) +Date: Sat May 20 19:06:22 2023 +0300 + + code: заготовка программы + + main.cpp | 9 +++++++++ + 1 file changed, 9 insertions(+) + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate +0b0f71a (HEAD -> main) git: добавлен файл игнорирования +00a04ef code: добавлен вывод разности +cdfe6e6 code: добавлен вывод суммы +1036577 code: добавлен ввод двух чисел +e80d54b build: добавлен файл проекта +70a6613 code: заготовка программы + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 0b0f71a (HEAD -> main) git: добавлен файл игнорирования +* 00a04ef code: добавлен вывод разности +* cdfe6e6 code: добавлен вывод суммы +* 1036577 code: добавлен ввод двух чисел +* e80d54b build: добавлен файл проекта +* 70a6613 code: заготовка программы + + +Поиск коммита, затрагивающий project.cbp: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log -- project.cbp +commit e80d54bbefde66975d12337c80b3b55975a986f3 +Author: Alice (ZhalninVY) +Date: Sat May 20 19:07:26 2023 +0300 + + build: добавлен файл проекта + + +Поиск коммита, название которого имеет тему "build:" : + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --grep "build:" +commit e80d54bbefde66975d12337c80b3b55975a986f3 +Author: Alice (ZhalninVY) +Date: Sat May 20 19:07:26 2023 +0300 + + build: добавлен файл проекта + + +16) Просмотр журнала: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git show HEAD +commit 0b0f71a0b032c71d9996df35ffc6b42336bcbe0c (HEAD -> main) +Author: Alice (ZhalninVY) +Date: Sat May 20 19:19:42 2023 +0300 + + git: добавлен файл игнорирования + +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 + + + +17) Просмотр коммитов (предпоследнего коммита): + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git show HEAD~1 +commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7 +Author: Alice (ZhalninVY) +Date: Sat May 20 19:12:59 2023 +0300 + + code: добавлен вывод разности + +diff --git a/main.cpp b/main.cpp +index 1967dd8..2d3e243 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'; + + } + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git show 00a04ef +commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7 +Author: Alice (ZhalninVY) +Date: Sat May 20 19:12:59 2023 +0300 + + code: добавлен вывод разности + +diff --git a/main.cpp b/main.cpp +index 1967dd8..2d3e243 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'; + + } + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git show main~1 +commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7 +Author: Alice (ZhalninVY) +Date: Sat May 20 19:12:59 2023 +0300 + + code: добавлен вывод разности + +diff --git a/main.cpp b/main.cpp +index 1967dd8..2d3e243 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'; + + } + + +18) Просмотр изменений: + +Просмотрим изменения рабочей копии: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git diff +warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it +diff --git a/main.cpp b/main.cpp +index 2d3e243..64da2d3 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'; + + } +diff --git a/project.cbp b/project.cbp +index 99bb702..34f06bc 100644 +--- a/project.cbp ++++ b/project.cbp +@@ -32,6 +32,7 @@ + + + ++ + + + + +Просмотр разницы изменений двух комитов + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git diff 70a6613 00a04ef +diff --git a/main.cpp b/main.cpp +index b4392ec..2d3e243 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -4,6 +4,10 @@ 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'; ++ + } + + +19) Откат изменений + +Во-первых, закомитил изменения рабочей копии (вывод произведения) + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: добавлен вывод произведения' +[main 48dbf41] code: добавлен вывод произведения + 1 file changed, 2 insertions(+), 1 deletion(-) + + + +Далее делаем откат изменений к предыдущей версии + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git reset --hard HEAD~1 (HEAD~1 - коммит к которому откатывают изменения) +HEAD is now at 0b0f71a git: добавлен файл игнорирования + +или добавим комментарий над main() и откатим этот файл к состоянию в последнем коммите + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git checkout HEAD -- main.cpp + + + +20) Создание пары ключей для доступа к серверу + +ssh-keygen + +Запустим агент, который работает в фоне и предоставляет ключи другим программам, в том числе git: + +eval $(ssh-agent -s) + + +Далее скопировать открытый ключ при помощи команды cat ~/.ssh/id_rsa.pub и добавить в список открытых ключей своей учетной записи. + +21)Создаем репозитарий под названием cs-lab02. + +Далее клонируем проект в каталог Bob: +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob +$ git clone git@uit.mpei.ru:ZhalninVY/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. + + +Далее переходим в каталог проекта (project): + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob +$ cd project + +После настраиваем git конфиг как с Alice: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git config user.name 'Bob (ZhalninVY)' + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git config user.email 'ZhalninVY@mpei.ru' + + +22)Совместная работа над проектом без конфликтов правок: + +«На машине Боба» добавляем в программу печать произведения чисел и делаем коммит: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git add main.cpp + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git commit -m 'code: добавлен вывод произведения' +[main 3b58c8d] code: добавлен вывод произведения + 1 file changed, 2 insertions(+), 1 deletion(-) + + +Отправляем коммит на сервер: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 8 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 425 bytes | 425.00 KiB/s, done. +Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +remote: . Processing 1 references +remote: Processed 1 references in total +To uit.mpei.ru:ZhalninVY/cs-lab02.git + 0b0f71a..3b58c8d main -> main + +«На машине Алисы» выполнить загрузку изменений: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git fetch +remote: Enumerating objects: 5, done. +remote: Counting objects: 100% (5/5), done. +remote: Compressing objects: 100% (3/3), done. +remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 405 bytes | 81.00 KiB/s, done. +From uit.mpei.ru:ZhalninVY/cs-lab02 + 0b0f71a..3b58c8d main -> origin/main + + +Просмотрим историю всех веток: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 3b58c8d (origin/main) code: добавлен вывод произведения +* 0b0f71a (HEAD -> main) git: добавлен файл игнорирования +* 00a04ef code: добавлен вывод разности +* cdfe6e6 code: добавлен вывод суммы +* 1036577 code: добавлен ввод двух чисел +* e80d54b build: добавлен файл проекта +* 70a6613 code: заготовка программы + + +Как можно видеть, ветка main отстает на один коммит от ветки origin/main. Продвинем ветку main к скачанной версии: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git pull --ff-only +Updating 0b0f71a..3b58c8d +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + + + +23)Разрешение конфликтов при совместной работе + +Дополним у Alice вывод максимума, у Bob - вывод минимума, попробуем сделать коммит и отправить его на сервер: + +Для Alice: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: добавлен вывод максимума' +[main 9c53d6f] code: добавлен вывод максимума + 1 file changed, 4 insertions(+) + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 8 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 435 bytes | 435.00 KiB/s, done. +Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +remote: . Processing 1 references +remote: Processed 1 references in total +To uit.mpei.ru:ZhalninVY/cs-lab02.git + a502524..9c53d6f main -> main + + + + +Для Bob: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git add main.cpp + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git commit -m 'code: добавлен вывод минимума' +[main 29109c5] code: добавлен вывод минимума + 1 file changed, 4 insertions(+) + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +To uit.mpei.ru:ZhalninVY/cs-lab02.git + ! [rejected] main -> main (fetch first) +error: failed to push some refs to 'uit.mpei.ru:ZhalninVY/cs-lab02.git' +hint: Updates were rejected because the remote contains work that you do +hint: not have locally. This is usually caused by another repository pushing +hint: to the same ref. You may want to first integrate the remote changes +hint: (e.g., 'git pull ...') before pushing again. +hint: See the 'Note about fast-forwards' in 'git push --help' for details. + + +Удаленный репозитарий не принимает изменений: коммит Боба основан не на последнем существующем коммите. + +Загрузим коммит из удаленного хранилища и после отобразим историю всех веток: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git pull --ff-only + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* 112ed02 (HEAD -> main) code: Вывод минимума +| * 4384564 (origin/main, origin/HEAD) code: Вывод максимума +|/ +* a41a855 code: Вывод деления +* 45cd4c1 code: Вывод произведения +* 8f9bb60 git: Файл игнорирования +* 7835a20 code: Вывод разницы и суммы +* 974994b code: Вывод суммы +* 50bff83 code: Ввод переменных +* 36b4362 code: заготовка программы + +Можно видеть, что ветка main локального репозитария разошлась с веткой origin/main, то есть с веткой main на сервере. + +Переместим коммит Bobа поверх коммита Алисы, то есть поверх origin/main: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git rebase origin/main +Auto-merging main.cpp +CONFLICT (content): Merge conflict in main.cpp +error: could not apply 112ed02... 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 112ed02... code: Вывод минимума + +Команда завершается с ошибкой, сообщающей о конфликте в main.cpp. + +Проверим статус репозитария: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git status +On branch main +Your branch is ahead of 'origin/main' by 1 commit. //Ваша ветвь опережает 'origin/main' на 1 коммит. + (use "git push" to publish your local commits) + +nothing added to commit but untracked files present (use "git add" to track) + +Теперь разрешим конфликт в CodeBlocks и последобавляем файл в индекс, продолжаем прерванную операцию rebase: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git add main.cpp + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git rebase --continue + +Проверяем, чтобы история хранилища была в надлежащем виде: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* 2088abe (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод минимума +* 9c53d6f code: добавлен вывод максимума +* a502524 code: добавлен вывод частного +* 3b58c8d code: добавлен вывод произведения +* 0b0f71a git: добавлен файл игнорирования +* 00a04ef code: добавлен вывод разности +* cdfe6e6 code: добавлен вывод суммы +* 1036577 code: добавлен ввод двух чисел +* e80d54b build: добавлен файл проекта +* 70a6613 code: заготовка программы + +24) Использование веток + +Создадим ветку double: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git branch double + +Переключимся на нее: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git checkout double +Switched to branch 'double' + +Заменим тип переменных а и b на double и сделаем коммит: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (double) +$ git add main.cpp + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (double) +$ git commit -m 'code: изменение типа на double' +[double 7b6ff11] code: изменение типа на double + 1 file changed, 1 insertion(+), 1 deletion(-) + + +Переключимся на ветку main: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (double) +$ git checkout main +Switched to branch 'main' +Your branch is up to date with 'origin/main'. + + + +Синхронизируем ветку main «на машине Алисы» с сервером. + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git fetch +remote: Enumerating objects: 5, done. +remote: Counting objects: 100% (5/5), done. +remote: Compressing objects: 100% (3/3), done. +remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 386 bytes | 38.00 KiB/s, done. +From uit.mpei.ru:ZhalninVY/cs-lab02 + 9c53d6f..2088abe main -> origin/main + +Продвинем ветку main к скачанной версии: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git pull --ff-only +Updating 9c53d6f..2088abe +Fast-forward + main.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + + +Просмотрим историю всех веток. + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 7b6ff11 (double) code: изменение типа на double +| * 2088abe (HEAD -> main, origin/main) code: добавлен вывод минимума +|/ +* 9c53d6f code: добавлен вывод максимума +* a502524 code: добавлен вывод частного +* 3b58c8d code: добавлен вывод произведения +* 0b0f71a git: добавлен файл игнорирования +* 00a04ef code: добавлен вывод разности +* cdfe6e6 code: добавлен вывод суммы +* 1036577 code: добавлен ввод двух чисел +* e80d54b build: добавлен файл проекта +* 70a6613 code: заготовка программы + + +Сольем ветки double и main: + +ПК@DESKTOP-NNUUA3R 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(-) + + +Просмотрим историю всех веток репозитария: + +ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* af1896d (HEAD -> main) Merge branch 'double' true +|\ +| * 7b6ff11 (double) code: изменение типа на double +* | 2088abe (origin/main) code: добавлен вывод минимума +|/ +* 9c53d6f code: добавлен вывод максимума +* a502524 code: добавлен вывод частного +* 3b58c8d code: добавлен вывод произведения +* 0b0f71a git: добавлен файл игнорирования +* 00a04ef code: добавлен вывод разности +* cdfe6e6 code: добавлен вывод суммы +* 1036577 code: добавлен ввод двух чисел +* e80d54b build: добавлен файл проекта +* 70a6613 code: заготовка программы + + +В результате слияния образуется специальный новый коммит (merge commit). \ No newline at end of file