diff --git a/KuzinReport.txt b/KuzinReport.txt new file mode 100644 index 0000000..5a7367f --- /dev/null +++ b/KuzinReport.txt @@ -0,0 +1,1189 @@ + + + + + + + + +Отчет по лабораторной работе №2 + «Система контроля версии Git» + + + + + + + +Выполнил: Кузин В.В. + Группа: А-03-22 + Проверил: Козлюк Д.А. + Филатов С.А. + + + + + +Цель работы +Знать понятия и компоненты систем контроля версий (СКВ), порядок и приемы работы с ними. +Уметь участвовать в командной разработке, используя конкретную СКВ — Git, а также популярный хостинг репозитариев — GitHub. + +Ход работы: +Вход в терминал и создание структуры каталогов +● Создаем папки пользователей (mkdir alice, mkdir bob) +● В папке пользователя alice создаем папку project +Инициализация репозитария и настройка Git +● Инициализируем хранилище git (git init) +● Настраиваем папки пользователя, с которым будем работать: +$ git init +Initialized empty Git repository in C:/Users/жесткий п/Desktop/lab_02/alice/project/.git/ + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git config user.name 'Alice(KuzinVV)' + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git config user.email 'KuzinVV@mpei.ru' + + + +Создание коммитов: +Занесение файлов под контроль версий +● Просматриваем состояние рабочей копии(git status) + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/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) + + +В первой строке ссылка HEAD указывает на ветку main +Вторая стр. говорит о том, что еще не было создано коммитов +Третья стр. показывает не отслеживаемые файлы в хранилище git, и подсказывает как их добавить +Последняя стр. говорит о том, что нет добавленных (отслеживаемых) файлов, которые можно будет закоммитить +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git add main.cpp + +Появилась строка с файлами в индексе, стоящими в очереди на коммит + +Составление сообщений к коммитам +● Создаем 2 коммита с информацией о коде программы и просматриваем текущий статус: + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git commit -m 'code: заготовка программы' +[master (root-commit) 034736f] code: заготовка программы + 1 file changed, 9 insertions(+) + create mode 100644 main.cpp + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ 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-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git commit -m 'build: добавлен файл проекта' +[master c07a302] build: добавлен файл проекта + 1 file changed, 40 insertions(+) + create mode 100644 project.cbp + + +● После добавления в программу ввода 2х чисел видим, что файл main.cpp был изменен + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git status +On branch master +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") + + +● Проделываем ряд изменений с кодом программы и делаем коммиты несколькими способами + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git add main.cpp + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git commit -m "Ввод двух чисел" +[master 4bba4b5] Ввод двух чисел + 1 file changed, 4 insertions(+), 1 deletion(-) + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git add -u + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git commit -m "Вывод суммы" +[master 58baa60] Вывод суммы + 1 file changed, 1 insertion(+), 1 deletion(-) + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git commit -u +On branch master +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/Debug/project.exe + obj/Debug/main.o + +no changes added to commit (use "git add" and/or "git commit -a") + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git add -u + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git commit -m "Вывод разности" +[master 12ceb72] Вывод разности + 1 file changed, 2 insertions(+), 1 deletion(-) + + + + + +• Создадим файл .gitignore, необходимый, чтобы скрыть файлы bin/, / obj/, прописываем там это и видим, что по мере заполнения файла, ненужный нам файлы пропали из git status: + + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git status +On branch master +Untracked files: + (use "git add ..." to include in what will be committed) + .gitignore + obj/ + +nothing added to commit but untracked files present (use "git add" to track) + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git status +On branch master +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) + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git add .gitignore + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git commit -m "git" +[master 883899e] git + 1 file changed, 2 insertions(+) + create mode 100644 .gitignore + + + + + +Просмотр истории +● С помощью команды git log и различных ее опций просматриваем журнал коммитов +Используем команду git log –stat +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git log --stat +commit 883899eb12349e2a5cb9c7aea3e83d1c70582e79 (HEAD -> master) +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:19:39 2023 +0300 + + git + + .gitignore | 2 ++ + 1 file changed, 2 insertions(+) + +commit 12ceb72ce75e2a6e37bb112ace06239b906b4dbe +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:16:44 2023 +0300 + + Вывод разности + + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 58baa60e6e5d5e7f0fd0f1ad24332ab4331bc81f +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:14:38 2023 +0300 + + Вывод суммы + + main.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 4bba4b52fe5169f122a0f40f6d93b611c5f136e3 +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:12:33 2023 +0300 + + Ввод двух чисел + + main.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit c07a3027f31e7364ff2e8149f2fa91c292f82f28 +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:10:01 2023 +0300 + + build: добавлен файл проекта + + project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 40 insertions(+) + +commit 034736faafb60a5f98cf6ae17f485a824938ab8f +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:06:50 2023 +0300 + + code: заготовка программы + + main.cpp | 9 +++++++++ + 1 file changed, 9 insertions(+) + + +• С помощью команды $ git log --oneline –decorate проведем то же самое действие, получив сокращенный журнал коммитов + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git log --oneline --decorate +883899e (HEAD -> master) git +12ceb72 Вывод разности +58baa60 Вывод суммы +4bba4b5 Ввод двух чисел +c07a302 build: добавлен файл проекта +034736f code: заготовка программы + + +• Команда + $ git log --oneline --decorate --all –graph позволяет увидеть журнал коммитов с характерными указателями + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git log --oneline --decorate --all --graph +* 883899e (HEAD -> master) git +* 12ceb72 Вывод разности +* 58baa60 Вывод суммы +* 4bba4b5 Ввод двух чисел +* c07a302 build: добавлен файл проекта +* 034736f code: заготовка программы + + +$ git log --grep "build: команда позволяет выбрать и просмотреть выбранный коммит: + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git log -- project.cbp +commit c07a3027f31e7364ff2e8149f2fa91c292f82f28 +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:10:01 2023 +0300 + + build: добавлен файл проекта + + + + + +$ git log -- project.cbp показывает коммит из файла: + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git log -- project.cbp +commit c07a3027f31e7364ff2e8149f2fa91c292f82f28 +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:10:01 2023 +0300 + + build: добавлен файл проекта + + + + + + +● Далее тремя способами просматриваем информацию о предпоследнем коммите +(результат всех способов один, поэтому в отчете не повторялся) + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git show HEAD +commit 883899eb12349e2a5cb9c7aea3e83d1c70582e79 (HEAD -> master) +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:19:39 2023 +0300 + + git + +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..4c7473d +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++/bin ++/obj + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git show HEAD~1 +commit 12ceb72ce75e2a6e37bb112ace06239b906b4dbe +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:16:44 2023 +0300 + + Вывод разности + +diff --git a/main.cpp b/main.cpp +index 6de6dd2..5371b30 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,6 +7,7 @@ int main() + cout << "Enter A and B: "; + int a, b; + cin >> a >> b; +- cout << "A + B = " << a + b << '\n'; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + return 0; + } + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git show master HEAD~1 +commit 883899eb12349e2a5cb9c7aea3e83d1c70582e79 (HEAD -> master) +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:19:39 2023 +0300 + + git + +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..4c7473d +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++/bin ++/obj + +commit 12ceb72ce75e2a6e37bb112ace06239b906b4dbe +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:16:44 2023 +0300 + + Вывод разности + +diff --git a/main.cpp b/main.cpp +index 6de6dd2..5371b30 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,6 +7,7 @@ int main() + cout << "Enter A and B: "; + int a, b; + cin >> a >> b; +- cout << "A + B = " << a + b << '\n'; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + return 0; + } + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git show ^C + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git show 12ceb7 +commit 12ceb72ce75e2a6e37bb112ace06239b906b4dbe +Author: Alice(KuzinVV) +Date: Mon Mar 20 14:16:44 2023 +0300 + + Вывод разности + +diff --git a/main.cpp b/main.cpp +index 6de6dd2..5371b30 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,6 +7,7 @@ int main() + cout << "Enter A and B: "; + int a, b; + cin >> a >> b; +- cout << "A + B = " << a + b << '\n'; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + return 0; + } + + + + + +● Далее тремя способами просматриваем информацию о предпоследнем коммите +(результат всех способов один, поэтому в отчете не повторялся) + + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git diff +diff --git a/main.cpp b/main.cpp +index 5371b30..fbd9488 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,6 +8,7 @@ int main() + int a, b; + cin >> a >> b; + cout << "A + B = " << a + b << '\n' +- << "A - B = " << a - b << '\n'; ++ << "A - B = " << a - b << '\n' ++ << "A * B = " << a * b << '\n'; + return 0; + } + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git diff HEAD~2 +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..4c7473d +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++/bin ++/obj +diff --git a/main.cpp b/main.cpp +index 6de6dd2..fbd9488 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,6 +7,8 @@ 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; + } + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git commit~5 HEAD +git: 'commit~5' is not a git command. See 'git --help'. + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git diff HEAD~5 HEAD +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..4c7473d +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++/bin ++/obj +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..99bb702 +--- /dev/null ++++ b/project.cbp +@@ -0,0 +1,40 @@ +master) +$ 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..99bb702 +--- /dev/null ++++ b/project.cbp +@@ -0,0 +1,40 @@ + + +В качестве первой стр. мы видим входные данные команды для сравнения файлов +Далее идет заголовок с легендой изменения, место измененного кода и измененная функция +На след. строке идут строки вокруг измененной части, удаленные и добавленные строки + +Откат коммита +Добавляем коммит вывода произведения и командой +$ git reset --hard HEAD~1 удаляем его + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git add main.cpp + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git commit -m "Вывод произведения" +[master 652d0a6] Вывод произведения + 1 file changed, 2 insertions(+), 1 deletion(-) + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git reset --hard HEAD~1 +HEAD is now at 883899e git + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git checkout HEAD -- main.cpp + + + + + Создание ключа для обмена кодом + + +Обмен кодом через удаленное хранилище +Обмен кодом через удалённое хранилище. Для загрузки данных в репозитарий GitHub будет использоваться протокол SSH. Поэтому для обмена данными с сервером нужно сгенерировать пару из открытого и закрытого ключей + + + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ ssh-keygen +Generating public/private rsa key pair. +Enter file in which to save the key (/c/Users/жесткий п/.ssh/id_rsa): +/c/Users/жесткий п/.ssh/id_rsa already exists. +Overwrite (y/n)? y +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Passphrases do not match. Try again. +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /c/Users/жесткий п/.ssh/id_rsa +Your public key has been saved in /c/Users/жесткий п/.ssh/id_rsa.pub +The key fingerprint is: +SHA256:DUKXJtEjr+Hp6Ja2QjeXeMHgLTCxgpnD/TNnWBrrw4o жесткий п@DESKTOP-UVLMK4V +The key's randomart image is: ++---[RSA 3072]----+ +| .. oo.. | +|oo+...o.= | +|*..= =.*.. | +| o + @..o | +| @ OS . | +| . * % | +| . . @ | +| o * o | +| E *o. | ++----[SHA256]-----+ + + + +Также после этого отображаются уникальные данные для ключа. Поскольку в работе вводить пароль при каждом использовании ключа может быть неудобно, можно использовать программу-агент, которую достаточно запустить перед началом работы + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ eval $(ssh-agent -s) +Agent pid 2253 + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ ssh-add +Enter passphrase for /c/Users/жесткий п/.ssh/id_rsa: +Identity added: /c/Users/жесткий п/.ssh/id_rsa (жесткий п@DESKTOP-UVLMK4V) + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ cat ~/.ssh/id_rsa.pub +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCe01bfFFoj5jJzCMFztO+qqcbb20izocEYasN7k6zfkURcAEexN62KSLoVq7P99g3+UL4wDm05c5JGOQne32/1bH6p6KrWBnbCO78Y6wC+X7F1mV00+KaoEN05OhhJnpj0lL7N+p6WWa/dhUO/iRL7tY9sMIv9D81qEKnyvoJWN1Ks+qzVJGBEtXl39IAB1DWml727HuZ34MudYA5fzI1mOe2sbmsk5yPD0dzhvG+ccioo77++oYY6KVuufCO7l+2HJN0nVmcyaKC5MtU9vrHlG8kQClSS38CUGmrQjvHxkpn6fn9sU8D6rXwGNyBQ7QrwMPZJbBAugAx+f8XVr/5AsX24Tk5g8Y1eHSZBMsM/bRvXkNLKgqecqJZdnyFoSjtcBh1lcNYQxc9/tzDBMwVE8D3enPW7RNxI5qOBClc1p03u0A4pSb4QvbSiDBWnbQ7apaQrUuPnVcG/q1T3W0IIrL5pTdBeav45ba6kUH+r73EAkZYUk2MOOCrskawaa8k= жесткий п@DESKTOP-UVLMK4V + + +Затем в настройках аккаунта GitHub нужно добавить публичный ключ, который по умолчанию записывается в файл id_rsa.pub. +● Теперь добавим репозитарий на который будем загружать хранилище git, и загрузим хранилище git на GitHub с помощью команды git push. + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git remote add origin git@uit.mpei.ru:KuzinVV/cs-lab_02.git + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git push -u origin main +error: src refspec main does not match any +error: failed to push some refs to 'uit.mpei.ru:KuzinVV/cs-lab_02.git' + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git push +fatal: The current branch master has no upstream branch. +To push the current branch and set the remote as upstream, use + + git push --set-upstream origin master + +To have this happen automatically for branches without a tracking +upstream, see 'push.autoSetupRemote' in 'git help config'. + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git push --set-upstream origin master +Enumerating objects: 18, done. +Counting objects: 100% (18/18), done. +Delta compression using up to 4 threads +Compressing objects: 100% (16/16), done. +Writing objects: 100% (18/18), 2.23 KiB | 43.00 KiB/s, done. +Total 18 (delta 2), reused 0 (delta 0), pack-reused 0 +remote: . Processing 1 references +remote: Processed 1 references in total +To uit.mpei.ru:KuzinVV/cs-lab_02.git + * [new branch] master -> master +branch 'master' set up to track 'origin/master'. + + + + +● К работе присоединяется боб. Клонируем репозитарий с помощью git clone. +● $ git clone git@github.com:Kra1k/cs-lab02.git +● Cloning into 'cs-lab_02'... +● Enter passphrase for key '/c/Users/жесткий п/.ssh/id_rsa': +● remote: Enumerating objects: 20, done. +● remote: Counting objects: 100% (20/20), done. +● remote: Compressing objects: 100% (12/12), done. +● Receiving objects: 100% (20/20), done. +● Resolving deltas: 100% (2/2), done. +● remote: Total 20 (delta 2), reused 20 (delta 2), pack-reused 0 + + + +● Настроим хранилище боба +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +● $ git config user.name 'Bob(KuzinVV)' +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +● $ git config user.email 'KuzinVV@mpei.ru' + + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git config user.name 'Bob(KuzinVV)' + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git config user.email 'KuzinVV@mpei.ru' + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git status +On branch master +Your branch is ahead of 'origin/master' by 2 commits. + (use "git push" to publish your local commits) + +nothing to commit, working tree clean + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git show HEAD +commit 2dae335f8a6f484195be4fcfdc4fe7e5a4c45970 (HEAD -> master) +Merge: 27292cf 883899e +Author: Bob (KuzinVV) +Date: Mon Mar 20 15:24:02 2023 +0300 + + Merge branch 'master' of uit.mpei.ru:KuzinVV/cs-lab_02 + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git push +Enter passphrase for key '/c/Users/жесткий п/.ssh/id_rsa': +Enter passphrase for key '/c/Users/жесткий п/.ssh/id_rsa': +Enumerating objects: 9, done. +Counting objects: 100% (8/8), done. +Delta compression using up to 4 threads +Compressing objects: 100% (5/5), done. +Writing objects: 100% (5/5), 697 bytes | 348.00 KiB/s, done. +Total 5 (delta 1), reused 0 (delta 0), pack-reused 0 +remote: . Processing 1 references +remote: Processed 1 references in total +To uit.mpei.ru:KuzinVV/cs-lab_02.git + 883899e..2dae335 master -> master + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git fetch +Enter passphrase for key '/c/Users/жесткий п/.ssh/id_rsa': +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 | 1024 bytes/s, done. +From uit.mpei.ru:KuzinVV/cs-lab_02 + 2dae335..dda7d4c master -> origin/master + + + +● Боб добавляет новый коммит, опережающий версию на сервере, и загружает его на GitHub. +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git add project.cpp + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) + +$ git commit -m 'code: добавление вывода произведения двух чисел' +[main 49afd29] code: добавление вывода произведения двух чисел + 1 file changed, 1 insertion(+), 1 deletion(-) + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git log --oneline --decorate --all --graph +* 49afd29 (HEAD -> main) code: добавление вывода произведения двух чисел +* a66d232 (origin/main, origin/HEAD) code: добавлен вывод разности двух чисел +* f06ff5f code: добавлен вывод суммы двух чисел +* c18ecb8 code: добавлен ввод двух чисел +* 75fb07c build: добавлен файл проекта +* e04836e code: заготовка программы +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) + +$ git push +Enter passphrase for key '/c/Users/Михаил/.ssh/id_rsa': +Enumerating objects: 7, done. +Counting objects: 100% (7/7), done. +Delta compression using up to 4 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (4/4), 456 bytes | 456.00 KiB/s, done. +Total 4 (delta 1), reused 0 (delta 0), pack-reused 0 +remote: Resolving deltas: 100% (1/1), completed with 1 local object. +To github.com:Kra1k/cs-lab¬_02.git + a66d232..49afd29 main -> main + + + +● Обновляем версию программы у Алисы. Для этого загружаем загрузку изменений с помощью git fetch. А затем переносим ветку main на скачанную версию с помощью git pull (который, вообще говоря, все равно вызывает git fetch, поэтому его ручной вызов не обязателен). + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git fetch +remote: Enumerating objects: 9, done. +remote: Counting objects: 100% (8/8), done. +remote: Compressing objects: 100% (5/5), done. +remote: Total 5 (delta 1), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (5/5), 677 bytes | 2.00 KiB/s, done. +From uit.mpei.ru:KuzinVV/cs-lab_02 + 883899e..2dae335 master -> origin/master + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git log --oneline --decorate --all --graph +* 2dae335 (origin/master) Merge branch 'master' of uit.mpei.ru:KuzinVV/cs-lab_02 +|\ +| * 883899e git +* | 27292cf Вывод произведения +|/ +* 12ceb72 (HEAD -> master) Вывод разности +* 58baa60 Вывод суммы +* 4bba4b5 Ввод двух чисел +* c07a302 build: добавлен файл проекта +* 034736f code: заготовка программы + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git pull --ff-only +Updating 12ceb72..2dae335 +Fast-forward + .gitignore | 2 ++ + main.cpp | 4 +++- + 2 files changed, 5 insertions(+), 1 deletion(-) + create mode 100644 .gitignore + + + + +● Далее Алиса вносит новое изменение, а Боб его скачивает. + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git add main.cpp + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git commit -m "Вывод деления" +[master dda7d4c] Вывод деления + 1 file changed, 2 insertions(+), 1 deletion(-) + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git show HEAD +commit dda7d4c124d5aeee9fc89c15b5b0b88609496b22 (HEAD -> master) +Author: Alice(KuzinVV) +Date: Mon Mar 20 15:36:38 2023 +0300 + + Вывод деления + +diff --git a/main.cpp b/main.cpp +index 427ded3..d601ffe 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -9,7 +9,8 @@ int main() + cin >> a >> b; + cout << "A + B = " << a + b << '\n' + << "A - B = " << a - b << '\n' +- << "A * B = " << a * b << '\n'; ++ << "A * B = " << a * b << '\n' ++ << "A / B = " << a / b << '\n'; + return 0; + + } + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git push +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 4 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 +remote: . Processing 1 references +remote: Processed 1 references in total +To uit.mpei.ru:KuzinVV/cs-lab_02.git + 2dae335..dda7d4c master -> master + + +● Теперь Алиса и Боб добавляют в программу печать максимума и минимума соответственно, а затем пробуют загрузить изменения на репозитарий на сервере. + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git add main.cpp + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git commit -m "Вывод максимума" +[master 372c9f3] Вывод максимума + 1 file changed, 2 insertions(+) + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git show HEAD +commit 372c9f385676d09b94f9d6326fa093d60cf56d9b (HEAD -> master) +Author: Alice(KuzinVV) +Date: Mon Mar 20 15:40:29 2023 +0300 + + Вывод максимума + +diff --git a/main.cpp b/main.cpp +index d601ffe..d0f3794 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -11,6 +11,8 @@ int main() + << "A - B = " << a - b << '\n' + << "A * B = " << a * b << '\n' + << "A / B = " << a / b << '\n'; ++ if (a > b) cout << "max = " << a << '\n'; ++ else cout << "max = " << b << '\n'; + return 0; + + } + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git push +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 4 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 427 bytes | 427.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:KuzinVV/cs-lab_02.git + dda7d4c..372c9f3 master -> master + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +$ git show HEAD +commit 372c9f385676d09b94f9d6326fa093d60cf56d9b (HEAD -> master, origin/master) +Author: Alice(KuzinVV) +Date: Mon Mar 20 15:40:29 2023 +0300 + + Вывод максимума + +diff --git a/main.cpp b/main.cpp +index d601ffe..d0f3794 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -11,6 +11,8 @@ int main() + << "A - B = " << a - b << '\n' + << "A * B = " << a * b << '\n' + << "A / B = " << a / b << '\n'; ++ if (a > b) cout << "max = " << a << '\n'; ++ else cout << "max = " << b << '\n'; + return 0; + } + + + +● (боб) + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git add main.cpp + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git commit -m "Вывод минимума" +[master b746bb0] Вывод минимума + 1 file changed, 2 insertions(+) + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git show HEAD +commit b746bb090fcbac7e616c41e950b0fbaea78b8760 (HEAD -> master) +Author: Bob(KuzinVV) +Date: Mon Mar 20 15:45:17 2023 +0300 + + Вывод минимума + +diff --git a/main.cpp b/main.cpp +index d601ffe..45306da 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -11,6 +11,8 @@ int main() + << "A - B = " << a - b << '\n' + << "A * B = " << a * b << '\n' + << "A / B = " << a / b << '\n'; ++ if (a > b) cout << "min = " << b << '\n'; ++ else cout << "min = " << a << '\n'; + return 0; + + } + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git push +Enter passphrase for key '/c/Users/жесткий п/.ssh/id_rsa': +To uit.mpei.ru:KuzinVV/cs-lab_02.git + ! [rejected] master -> master (non-fast-forward) +error: failed to push some refs to 'uit.mpei.ru:KuzinVV/cs-lab_02.git' +hint: Updates were rejected because the tip of your current branch is behind +hint: its remote counterpart. Integrate the remote changes (e.g. +hint: 'git pull ...') before pushing again. +hint: See the 'Note about fast-forwards' in 'git push --help' for details. +(Однако загрузить на сервер изменения получается только у Алисы потому, что Боб затем пытается загрузить версию, основанную на более старом коммите, чем самый новый коммит в репозитарии GitHub.) + +● Загрузим версию с сервера +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +● $ git fetch +● Enter passphrase for key '/c/Users/жесткий п/.ssh/id_rsa': +● Enter passphrase for key '/c/Users/жесткий п/.ssh/id_rsa': +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +● $ git show +● commit b746bb090fcbac7e616c41e950b0fbaea78b8760 (HEAD -> master) +● Author: Bob(KuzinVV) +● Date: Mon Mar 20 15:45:17 2023 +0300 +● +● Вывод минимума +● +● diff --git a/main.cpp b/main.cpp +● index d601ffe..45306da 100644 +● --- a/main.cpp +● +++ b/main.cpp +● @@ -11,6 +11,8 @@ int main() +● << "A - B = " << a - b << '\n' +● << "A * B = " << a * b << '\n' +● << "A / B = " << a / b << '\n'; +● + if (a > b) cout << "min = " << b << '\n'; +● + else cout << "min = " << a << '\n'; +● return 0; +● +● } +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +● $ git log --oneline --decorate --all –-graph +● fatal: ambiguous argument '–-graph': unknown revision or path not in the working tree. +● Use '--' to separate paths from revisions, like this: +● 'git [...] -- [...]' +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +● $ git log --oneline --decorate --all --graph +● * b746bb0 (HEAD -> master) Вывод минимума +● | * 372c9f3 (origin/master, origin/HEAD) Вывод максимума +● |/ +● * dda7d4c Вывод деления +● * 2dae335 Merge branch 'master' of uit.mpei.ru:KuzinVV/cs-lab_02 +● |\ +● | * 883899e git +● * | 27292cf Вывод произведения +● |/ +● * 12ceb72 Вывод разности +● * 58baa60 Вывод суммы +● * 4bba4b5 Ввод двух чисел +● * c07a302 build: добавлен файл проекта +● * 034736f code: заготовка программы +(Ветка main раздвоилась.) +● Объединим коммиты Боба и Алисы, поместив коммит Боба выше с помощью комманды git rebase. +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +● $ git rebase origin/master +● Auto-merging main.cpp +● CONFLICT (content): Merge conflict in main.cpp +● error: could not apply b746bb0... Вывод минимума +● 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 b746bb0... Вывод минимума + +● Комманда завершается с ошибкой из-за конфликта в файле с кодом main.cpp. Производный файл от файла Алисы и Боба записывается в рабочую копию с помеченными метками конфликта. Убираем метки конфликта, и дорабатываем код так, чтобы программа компилировалась и работала. Затем загружаем изменения в индекс и продолжаем операцию git rebase, с помощью флага –continue. + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master|REBASE 1/1) +$ git add -u + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master|REBASE 1/1) +$ git status +interactive rebase in progress; onto 372c9f3 +Last command done (1 command done): + pick b746bb0 Вывод минимума +No commands remaining. +You are currently rebasing branch 'master' on '372c9f3'. + (all conflicts fixed: run "git rebase --continue") + +Changes to be committed: + (use "git restore --staged ..." to unstage) + modified: main.cpp + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master|REBASE 1/1) +$ git rebase --continue +[detached HEAD 9ebad82] Вывод минимума + 1 file changed, 5 insertions(+) +Successfully rebased and updated refs/heads/master. + + +(Получили желаемый результат) +● Отправим изменения на сервер. + + +жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/bob/project (master) +$ git push +Enter passphrase for key '/c/Users/жесткий п/.ssh/id_rsa': +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 4 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 462 bytes | 462.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:KuzinVV/cs-lab_02.git + 372c9f3..9ebad82 master -> master + +● В это время Алиса создаёт новую ветку (с помощью комманды git branch) для изменения типа переменных на вещественный. Начинает она с коммита, когда добавлена печать максимума. +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git pull +● Updating 372c9f3..9ebad82 +● Fast-forward +● main.cpp | 5 +++++ +● 1 file changed, 5 insertions(+) +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git fetch +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git checkout -b +● error: switch `b' requires a value +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git checkout double +● Switched to branch 'double' +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (double) +● $ git add -u +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (double) +● $ git commit -m "Перевод a, b в double" +● [double c7f3bdf] Перевод a, b в double +● 1 file changed, 6 insertions(+), 1 deletion( + + + + +● Затем переключается на ветку main. И синхронизирует её +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (double) +● $ git checkout master +● Switched to branch 'master' +● Your branch is up to date with 'origin/master'. +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git fetch +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git add -u +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git commit -m "Изменение типа данных" +● [master 5422fdc] Изменение типа данных +● 1 file changed, 1 insertion(+), 1 deletion(-) +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git fetch +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git pull --ff-only +● Already up to date. +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ log --oneline --decorate --all –graph +● bash: log: command not found +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git log --oneline --decorate --all --graph +● * 5422fdc (HEAD -> master) Изменение типа данных +● * 9ebad82 (origin/master) Вывод минимума +● | * c7f3bdf (double) Перевод a, b в double +● |/ +● * 372c9f3 Вывод максимума +● * dda7d4c Вывод деления +● * 2dae335 Merge branch 'master' of uit.mpei.ru:KuzinVV/cs-lab_02 +● |\ +● | * 883899e git +● * | 27292cf Вывод произведения +● |/ +● * 12ceb72 Вывод разности +● * 58baa60 Вывод суммы +● * 4bba4b5 Ввод двух чисел +● * c07a302 build: добавлен файл проекта +● * 034736f code: заготовка программы +● + + + +(Получаем одновременно две ветки) +● Объединяем их с помощью комманды git merge. Вносим последние изменения и загружаем на GitHub. +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git merge double +● Merge made by the 'ort' strategy. +● +● жесткий п@DESKTOP-UVLMK4V MINGW64 ~/Desktop/lab_02/alice/project (master) +● $ git log --oneline --decorate --all --graph +● * e00b9df (HEAD -> master) Merge branch 'double' +● |\ +● | * c7f3bdf (double) Перевод a, b в double +● * | 5422fdc Изменение типа данных +● * | 9ebad82 (origin/master) Вывод минимума +● |/ +● * 372c9f3 Вывод максимума +● * dda7d4c Вывод деления +● * 2dae335 Merge branch 'master' of uit.mpei.ru:KuzinVV/cs-lab_02 +● |\ +● | * 883899e git +● * | 27292cf Вывод произведения +● |/ +● * 12ceb72 Вывод разности +● * 58baa60 Вывод суммы +● * 4bba4b5 Ввод двух чисел +● * c07a302 build: добавлен файл проек + + + + + + + + + + +