Отчет по лабораторной работе №2 «Система контроля версий GIT» Выполнил: Бутко З.В. Группа: А-03-23 Проверил: Козлюк Д.А. Примечание: работа выполнялась на MAC OS. 1. Создал на рабочем столе каталог lab02 и запустил в нем терминал: Last login: Sat Feb 10 20:33:50 on console zakhar@MacBook-Air-Zakhar lab02 % 2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто: zakhar@MacBook-Air-Zakhar lab02 % $ls zakhar@MacBook-Air-Zakhar lab02 % 3. Создал каталоги Алисы и Боба, создал каталог "project", изучил команду "cd" в процессе: zakhar@MacBook-Air-Zakhar lab02 % mkdir alice zakhar@MacBook-Air-Zakhar lab02 % mkdir bob zakhar@MacBook-Air-Zakhar lab02 % cd alice zakhar@MacBook-Air-Zakhar alice % mkdir project zakhar@MacBook-Air-Zakhar alice % cd project zakhar@MacBook-Air-Zakhar project % cd .. zakhar@MacBook-Air-Zakhar alice % cd .. zakhar@MacBook-Air-Zakhar lab02 % cd alice zakhar@MacBook-Air-Zakhar alice % cd project zakhar@MacBook-Air-Zakhar project % 4. Инициализировал репозитарий: zakhar@MacBook-Air-Zakhar project % git init Initialized empty Git repository in /Users/zakhar/Documents/lab02/alice/project/.git/ zakhar@MacBook-Air-Zakhar project % git branch -m main zakhar@MacBook-Air-Zakhar project % ls -A zakhar@MacBook-Air-Zakhar project % git config user.name 'Alice (ButkoZV)' zakhar@MacBook-Air-Zakhar project % git config user.email 'ButkoZV@mpei.ru' zakhar@MacBook-Air-Zakhar project % git status On branch main No commits yet Untracked files: (use "git add ..." to include in what will be committed) main main.cpp main.dSYM/ nothing added to commit but untracked files present (use "git add" to track) 5. Внес индекс в фаил: zakhar@MacBook-Air-Zakhar project % git add main.cpp zakhar@MacBook-Air-Zakhar project % 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) main main.dSYM/ zakhar@MacBook-Air-Zakhar project % git commit -m 'code: заготовка программы' [main (root-commit) d40b59d] code: заготовка программы 1 file changed, 7 insertions(+) create mode 100644 main.cpp 6 Изменения кода: zakhar@MacBook-Air-Zakhar project % 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) main main.dSYM/ no changes added to commit (use "git add" and/or "git commit -a") первый способ (ввод а и b) zakhar@MacBook-Air-Zakhar project % git add main.cpp zakhar@MacBook-Air-Zakhar project % git commit -m 'code: сделал коммит' [main 7bff90e] code: сделал коммит 1 file changed, 3 insertions(+), 1 deletion(-) второй способ (добавил сложение) zakhar@MacBook-Air-Zakhar project % git add -u zakhar@MacBook-Air-Zakhar project % git commit -m "code: добавил сумму" [main 9187623] code: добавил сумму 1 file changed, 1 insertion(+) третий способ (добавил вычитание) zakhar@MacBook-Air-Zakhar project % git commit -a -m "code: добавил вычитание" [main 0da39db] code: добавил вычитание 1 file changed, 1 insertion(+) 7. Работа с журналом репозитария: Журнал репозитария показывает команда git log commit 0da39dbb83f3eeb15f44677b948db2b50faff1c3 (HEAD -> main) Author: Alice (ButkoZV) Date: Wed Mar 27 15:29:05 2024 +0300 code: добавил вычитание commit 9187623fffbd9d8d82a9d70fafad0f425e4b6a07 Author: Alice (ButkoZV) Date: Wed Mar 27 15:24:41 2024 +0300 code: добавил сумму commit 7bff90e5576e36cee72c12a34c127e030ae1dba1 Author: Alice (ButkoZV) Date: Wed Mar 27 15:19:54 2024 +0300 code: сделал коммит commit d40b59d2d9176b12dfe10ad13cf9576f7f35b3f9 Author: Alice (ButkoZV) Date: Wed Mar 27 15:13:40 2024 +0300 code: заготовка программы: У команды git log много опций, например: • git log --stat показывает файлы, измененные в коммитах. • git log --oneline --decorate показывает коммиты компактно (--oneline), а также показывает ссылки, концы веток и тэги (--decorate). • git log --oneline --decorate --all --graph делает то же для всех веток (--all), причем коммиты отображаются в терминале в виде дерева (--graph). git log --stat показывает файлы, измененные в коммитах. zakhar@MacBook-Air-Zakhar main.dSYM % git log --stat commit 0da39dbb83f3eeb15f44677b948db2b50faff1c3 (HEAD -> main) Author: Alice (ButkoZV) Date: Wed Mar 27 15:29:05 2024 +0300 code: добавил вычитание main.cpp | 1 + 1 file changed, 1 insertion(+) commit 9187623fffbd9d8d82a9d70fafad0f425e4b6a07 Author: Alice (ButkoZV) Date: Wed Mar 27 15:24:41 2024 +0300 code: добавил сумму main.cpp | 1 + 1 file changed, 1 insertion(+) commit 7bff90e5576e36cee72c12a34c127e030ae1dba1 Author: Alice (ButkoZV) Date: Wed Mar 27 15:19:54 2024 +0300 code: сделал коммит main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d40b59d2d9176b12dfe10ad13cf9576f7f35b3f9 Author: Alice (ButkoZV) Date: Wed Mar 27 15:13:40 2024 +0300 code: заготовка программы main.cpp | 7 +++++++ 1 file changed, 7 insertions(+) git log --oneline —decorate показывает коммиты компактно (--oneline), а также показывает ссылки, концы веток и тэги (--decorate) zakhar@MacBook-Air-Zakhar main.dSYM % git log --oneline --decorate 0da39db (HEAD -> main) code: добавил вычитание 9187623 code: добавил сумму 7bff90e code: сделал коммит d40b59d code: заготовка программы git log --oneline --decorate --all —graph показывает коммиты компактно (--oneline), а также показывает ссылки, концы веток и тэги (--decorate); делает то же для всех веток (--all), причем коммиты отображаются в терминале в виде дерева (--graph). zakhar@MacBook-Air-Zakhar main.dSYM % git log --oneline --decorate --all --graph * 0da39db (HEAD -> main) code: добавил вычитание * 9187623 code: добавил сумму * 7bff90e code: сделал коммит * d40b59d code: заготовка программы Подробно опишите что показывает git log —-stat для последнего коммита фиолетовый последний коммит zakhar@MacBook-Air-Zakhar main.dSYM % git log --stat commit 0da39dbb83f3eeb15f44677b948db2b50faff1c3 (HEAD -> main) Author: Alice (ButkoZV) Date: Wed Mar 27 15:29:05 2024 +0300 code: добавил вычитание Коммиты можно фильтровать по разным признакам: • git log -- main.cpp показывает затрагивающие main.cpp; • git log --grep "code:" показывает коммиты с code: в сообщении. zakhar@MacBook-Air-Zakhar main.dSYM % git log -- main.cpp zakhar@MacBook-Air-Zakhar main.dSYM % git log --grep "code:" commit 0da39dbb83f3eeb15f44677b948db2b50faff1c3 (HEAD -> main) Author: Alice (ButkoZV) Date: Wed Mar 27 15:29:05 2024 +0300 code: добавил вычитание commit 9187623fffbd9d8d82a9d70fafad0f425e4b6a07 Author: Alice (ButkoZV) Date: Wed Mar 27 15:24:41 2024 +0300 code: добавил сумму commit 7bff90e5576e36cee72c12a34c127e030ae1dba1 Author: Alice (ButkoZV) Date: Wed Mar 27 15:19:54 2024 +0300 code: сделал коммит commit d40b59d2d9176b12dfe10ad13cf9576f7f35b3f9 Author: Alice (ButkoZV) Date: Wed Mar 27 15:13:40 2024 +0300 code: заготовка программы 8. Просмотр коммитов. git show HEAD (текущий) zakhar@MacBook-Air-Zakhar project % git show HEAD commit 0da39dbb83f3eeb15f44677b948db2b50faff1c3 (HEAD -> main) Author: Alice (ButkoZV) Date: Wed Mar 27 15:29:05 2024 +0300 code: добавил вычитание diff --git a/main.cpp b/main.cpp index 75f3e4e..cfab44d 100644 --- a/main.cpp +++ b/main.cpp @@ -6,5 +6,6 @@ int main(){ int a, b; cin >> a >> b; cout << "A + B = " << a + b << '\n'; + cout << "A - B = " << a - b << '\n'; return 0; } \ No newline at end of file git show 0da39dbb83f3eeb15f44677b948db2b50faff1c3 (по хэшу) zakhar@MacBook-Air-Zakhar project % git show 0da39dbb83f3eeb15f44677b948db2b50faff1c3 commit 0da39dbb83f3eeb15f44677b948db2b50faff1c3 (HEAD -> main) Author: Alice (ButkoZV) Date: Wed Mar 27 15:29:05 2024 +0300 code: добавил вычитание diff --git a/main.cpp b/main.cpp index 75f3e4e..cfab44d 100644 --- a/main.cpp +++ b/main.cpp @@ -6,5 +6,6 @@ int main(){ int a, b; cin >> a >> b; cout << "A + B = " << a + b << '\n'; + cout << "A - B = " << a - b << '\n'; return 0; } \ No newline at end of file Самостоятельно найти предпоследний коммит. zakhar@MacBook-Air-Zakhar project % git show HEAD~1 commit 9187623fffbd9d8d82a9d70fafad0f425e4b6a07 Author: Alice (ButkoZV) Date: Wed Mar 27 15:24:41 2024 +0300 code: добавил сумму diff --git a/main.cpp b/main.cpp index 9ea8342..75f3e4e 100644 --- a/main.cpp +++ b/main.cpp @@ -5,5 +5,6 @@ int main(){ cout << "Enter A and B: "; int a, b; cin >> a >> b; + cout << "A + B = " << a + b << '\n'; return 0; } \ No newline at end of file 9. Просмотр изменений Добавим печать произведения чисел, но не станем пока делать коммит. zakhar@MacBook-Air-Zakhar project % git diff diff --git a/main.cpp b/main.cpp index cfab44d..378b4fa 100644 --- a/main.cpp +++ b/main.cpp @@ -7,5 +7,6 @@ int main(){ cin >> a >> b; cout << "A + B = " << a + b << '\n'; cout << "A - B = " << a - b << '\n'; + cout << "A * B = " << a * b << '\n'; return 0; } \ No newline at end of file 10. Изменения между самым первым коммитом и коммитом, добавляющим вывод разности. Самостоятельно закоммитить вывод произведения: zakhar@MacBook-Air-Zakhar project % git commit -a -m "code: вывод произведения" [main 982fd62] code: вывод произведения 1 file changed, 1 insertion(+) необходимо отменить (откатить) этот коммит, то есть вернуться к предыдущему. Для этого воспользуемся командной git reset: zakhar@MacBook-Air-Zakhar project % git reset --hard HEAD~1 HEAD is now at 0da39db code: добавил вычитание (отсюда видно, что последним коммитом вновь стало добавление вычитания) Уберем изменения в main.cpp другим способом — откатив этот файл к состоянию в последнем коммите (HEAD): zakhar@MacBook-Air-Zakhar project % git checkout HEAD — main.cpp убедимся с помощью команды git log zakhar@MacBook-Air-Zakhar project % git log commit 0da39dbb83f3eeb15f44677b948db2b50faff1c3 (HEAD -> main) Author: Alice (ButkoZV) Date: Wed Mar 27 15:29:05 2024 +0300 code: добавил вычитание commit 9187623fffbd9d8d82a9d70fafad0f425e4b6a07 Author: Alice (ButkoZV) Date: Wed Mar 27 15:24:41 2024 +0300 code: добавил сумму commit 7bff90e5576e36cee72c12a34c127e030ae1dba1 Author: Alice (ButkoZV) Date: Wed Mar 27 15:19:54 2024 +0300 code: сделал коммит commit d40b59d2d9176b12dfe10ad13cf9576f7f35b3f9 Author: Alice (ButkoZV) Date: Wed Mar 27 15:13:40 2024 +0300 code: заготовка программы 11. Обмен кодом через удаленное хранилище создадим пару ключей zakhar@MacBook-Air-Zakhar project % ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/zakhar/.ssh/id_rsa): Created directory '/Users/zakhar/.ssh'. Введем код-фразу Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/zakhar/.ssh/id_rsa Your public key has been saved in /Users/zakhar/.ssh/id_rsa.pub The key fingerprint is: SHA256:9qXB8Ul3g4E1bWZry+ECzlxMDfFSbP8FyJ5SvODnz28 zakhar@MacBook-Air-Zakhar.local The key's randomart image is: +---[RSA 3072]----+ | ooB*. | | ..=.BO | | ..++=*++| | .o===.=+| | S *+* + =| | . . B.. +.| | o o. | | o E| | o.| +----[SHA256]-----+ запустим агента, чтобы постоянно не вводить код-фразу zakhar@MacBook-Air-Zakhar project % eval $(ssh-agent -s) Agent pid 46873 Загрузить ключ (потребуется ввести пароль): zakhar@MacBook-Air-Zakhar project % ssh-add Enter passphrase for /Users/zakhar/.ssh/id_rsa: Identity added: /Users/zakhar/.ssh/id_rsa (zakhar@MacBook-Air-Zakhar.local) отобразить открытый ключ zakhar@MacBook-Air-Zakhar project % git push -u origin main Username for 'http://uit.mpei.ru': ButkoZV Password for 'http://ButkoZV@uit.mpei.ru': Enumerating objects: 12, done. Counting objects: 100% (12/12), done. Delta compression using up to 8 threads Compressing objects: 100% (8/8), done. Writing objects: 100% (12/12), 1.20 KiB | 1.20 MiB/s, done. Total 12 (delta 2), reused 0 (delta 0), pack-reused 0 remote: . Processing 1 references remote: Processed 1 references in total To http://uit.mpei.ru/git/ButkoZV/cs-lab2.git * [new branch] main -> main branch 'main' set up to track 'origin/main'. Получение проекта с сервера: zakhar@MacBook-Air-Zakhar bob % git clone http://uit.mpei.ru/git/ButkoZV/cs-lab2.git project Cloning into 'project'... remote: Enumerating objects: 12, done. remote: Counting objects: 100% (12/12), done. remote: Compressing objects: 100% (8/8), done. remote: Total 12 (delta 2), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (12/12), done. Resolving deltas: 100% (2/2), done. zakhar@MacBook-Air-Zakhar bob % ls -l total 0 drwxr-xr-x 4 zakhar staff 128 10 апр 14:32 project zakhar@MacBook-Air-Zakhar bob % cd project zakhar@MacBook-Air-Zakhar project % ls -l total 8 -rw-r--r-- 1 zakhar staff 215 10 апр 14:32 main.cpp 12. Самостоятельная работа с кодом «На машине Боба» добавьте в программу печать произведения чисел и сделайте коммит. Просмотрите последний коммит и убедитесь, что он сделан от имени Боба. zakhar@MacBook-Air-Zakhar project % git add main.cpp zakhar@MacBook-Air-Zakhar project % git commit -m "code: добавил умножение" [main 8011a76] code: добавил умножение Committer: Zakhar Your name and email address were configured automatically based on your username and hostname. Please check that they are accurate. You can suppress this message by setting them explicitly. Run the following command and follow the instructions in your editor to edit your configuration file: git config --global --edit After doing this, you may fix the identity used for this commit with: git commit --amend --reset-author 1 file changed, 1 insertion(+) zakhar@MacBook-Air-Zakhar project % git status On branch main Your branch is ahead of 'origin/main' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working tree clean zakhar@MacBook-Air-Zakhar project % git log commit 8011a764a559c066d93e366c18b763b7bfe25506 (HEAD -> main) Author: Zakhar Date: Wed Apr 10 16:40:31 2024 +0300 code: добавил умножение commit 0da39dbb83f3eeb15f44677b948db2b50faff1c3 (origin/main, origin/HEAD) Author: Alice (ButkoZV) Date: Wed Mar 27 15:29:05 2024 +0300 code: добавил вычитание commit 9187623fffbd9d8d82a9d70fafad0f425e4b6a07 Author: Alice (ButkoZV) Date: Wed Mar 27 15:24:41 2024 +0300 code: добавил сумму commit 7bff90e5576e36cee72c12a34c127e030ae1dba1 Author: Alice (ButkoZV) Date: Wed Mar 27 15:19:54 2024 +0300 zakhar@MacBook-Air-Zakhar project % git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 337 bytes | 337.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 http://uit.mpei.ru/git/ButkoZV/cs-lab2.git 0da39db..8011a76 main -> main Добавил деление в алисе, синхронизировал и проверил все репозиториии zakhar@MacBook-Air-Zakhar project % git fetch remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), 317 bytes | 105.00 KiB/s, done. From http://uit.mpei.ru/git/ButkoZV/cs-lab2 0da39db..8011a76 main -> origin/main zakhar@MacBook-Air-Zakhar project % git log --oneline --decorate --all --graph * 8011a76 (origin/main) code: добавил умножение * 0da39db (HEAD -> main) code: добавил вычитание * 9187623 code: добавил сумму * 7bff90e code: сделал коммит * d40b59d code: заготовка программы zakhar@MacBook-Air-Zakhar project % git pull --ff-only Updating 0da39db..8011a76 Fast-forward main.cpp | 1 + 1 file changed, 1 insertion(+) zakhar@MacBook-Air-Zakhar project % git log --oneline --decorate --all --graph * 8011a76 (HEAD -> main, origin/main) code: добавил умножение * 0da39db code: добавил вычитание * 9187623 code: добавил сумму * 7bff90e code: сделал коммит * d40b59d code: заготовка программы Заклонировал zakhar@MacBook-Air-Zakhar project % git clone http://uit.mpei.ru/git/ButkoZV/cs-lab2.git project Cloning into 'project'... remote: Enumerating objects: 15, done. remote: Counting objects: 100% (15/15), done. remote: Compressing objects: 100% (10/10), done. remote: Total 15 (delta 3), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (15/15), done. Resolving deltas: 100% (3/3), done. zakhar@MacBook-Air-Zakhar project % git status On branch main Your branch is up to date with 'origin/main'. Untracked files: (use "git add ..." to include in what will be committed) .DS_Store .gitignore main main.dSYM/ project/ nothing added to commit but untracked files present (use "git add" to track) zakhar@MacBook-Air-Zakhar project % git fetch zakhar@MacBook-Air-Zakhar project % git pull --ff-only Already up to date. Проверил состояние кода zakhar@MacBook-Air-Zakhar project % cat main.cpp #include using namespace std; 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'; cout << "A * B = " << a * b << '\n'; return 0; }% zakhar@MacBook-Air-Zakhar project % add main.cpp zsh: command not found: add zakhar@MacBook-Air-Zakhar project % git add main.cpp zakhar@MacBook-Air-Zakhar project % git commit -m "code: добавил деление" [main 3fa5eee] code: добавил деление 1 file changed, 2 insertions(+), 1 deletion(-) zakhar@MacBook-Air-Zakhar project % git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 351 bytes | 351.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 http://uit.mpei.ru/git/ButkoZV/cs-lab2.git 8011a76..3fa5eee main -> main zakhar@MacBook-Air-Zakhar project % cat main.cpp #include using namespace std; //alice 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'; cout << "A * B = " << a * b << '\n'; cout << "A / B = " << a / b << '\n'; return 0; } 13. Предположим, Алиса решает добавить в программу печать максимума из чисел, а Боб — минимума. zakhar@MacBook-Air-Zakhar project % git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 393 bytes | 393.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 http://uit.mpei.ru/git/ButkoZV/cs-lab2.git 3fa5eee..b0d09c9 main -> main zakhar@MacBook-Air-Zakhar project % git log --oneline --decorate --all --graph * b0d09c9 (HEAD -> main, origin/main) code: добавил вывод максимума * 3fa5eee code: добавил деление * 8011a76 code: добавил умножение * 0da39db code: добавил вычитание * 9187623 code: добавил сумму * 7bff90e code: сделал коммит * d40b59d code: заготовка программы аналогично с бобом zakhar@MacBook-Air-Zakhar project % git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 379 bytes | 379.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 http://uit.mpei.ru/git/ButkoZV/cs-lab2.git b0d09c9..c449bc7 main -> main zakhar@MacBook-Air-Zakhar project % git log --oneline --decorate --all --graph * c449bc7 (HEAD -> main, origin/main, origin/HEAD) code: добавил вывод минимума * b0d09c9 code: добавил вывод максимума * 3fa5eee code: добавил деление * 8011a76 code: добавил умножение * 0da39db code: добавил вычитание * 9187623 code: добавил сумму * 7bff90e code: сделал коммит * d40b59d code: заготовка программы Однако эта команда завершается с ошибкой, сообщающей о конфликте в main.cpp. Просмотрите состояние хранилища и поясните в отчете. zakhar@МacBook-Air-Zakhar project % cat main.cpp #include using namespace std; //alice 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'; cout << "A * B = " << a * b << '\n'; cout << "A / B = " << a / b << '\n'; <<<<<<< HEAD if (a < b) { cout << " max element is " << b; } else { cout << " max element is " << a; } ======= if (a > b) { cout << " min element is " << b; } else { cout << " min element is " << a; }; >>>>>>> 2ebf7dc (code: добавил вывод минимума) return 0; } Вручную исправим ошибку и отправим на сервер. zakhar@MacBook-Air-Zakhar project % nano main.cpp zakhar@MacBook-Air-Zakhar project % cat main.cpp #include using namespace std; //alice 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'; cout << "A * B = " << a * b << '\n'; cout << "A / B = " << a / b << '\n'; if (a < b) { cout << " max element is " << b; } else { cout << " max element is " << a; } if (a > b) { cout << " min element is " << b; } else { cout << " min element is " << a; }; return 0; } zakhar@MacBook-Air-Zakhar project % git add main.cpp zakhar@MacBook-Air-Zakhar project % git status interactive rebase in progress; onto b0d09c9 Last command done (1 command done): pick 2ebf7dc code: добавил вывод минимума No commands remaining. You are currently rebasing branch 'main' on 'b0d09c9'. (all conflicts fixed: run "git rebase --continue") Changes to be committed: (use "git restore --staged ..." to unstage) modified: main.cpp Untracked files: (use "git add ..." to include in what will be committed) main zakhar@MacBook-Air-Zakhar project % git rebase --continue [detached HEAD 36d0e5d] code: добавил вывод минимума(rebase) Committer: Zakhar Your name and email address were configured automatically based on your username and hostname. Please check that they are accurate. You can suppress this message by setting them explicitly: git config --global user.name "Your Name" git config --global user.email you@example.com After doing this, you may fix the identity used for this commit with: git commit --amend --reset-author 1 file changed, 9 insertions(+), 1 deletion(-) Successfully rebased and updated refs/heads/main. zakhar@MacBook-Air-Zakhar project % git log --oneline --decorate --all --graph * 36d0e5d (HEAD -> main) code: добавил вывод минимума(rebase) * b0d09c9 (origin/main, origin/HEAD) code: добавил вывод максимума * 3fa5eee code: добавил деление * 8011a76 code: добавил умножение * 0da39db code: добавил вычитание * 9187623 code: добавил сумму * 7bff90e code: сделал коммит * d40b59d code: заготовка программы zakhar@MacBook-Air-Zakhar project % git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 392 bytes | 392.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 http://uit.mpei.ru/git/ButkoZV/cs-lab2.git b0d09c9..36d0e5d main -> main 14. Использование веток. Создайте ветку double и переключитесь на нее. zakhar@MacBook-Air-Zakhar project % git branch double zakhar@MacBook-Air-Zakhar project % git checkout double Switched to branch 'double' измените тип данных на double zakhar@MacBook-Air-Zakhar project % nano main.cpp zakhar@MacBook-Air-Zakhar project % cat main.cpp #include using namespace std; //alice int main(){ cout << "Enter A and B: "; double a, b; cin >> a >> b; cout << "A + B = " << a + b << '\n'; cout << "A - B = " << a - b << '\n'; cout << "A * B = " << a * b << '\n'; cout << "A / B = " << a / b << '\n'; if (a < b) { cout << " max element is " << b; } else { cout << " max element is " << a; } return 0; } опереключитесь на ветку main, сделайте синхронизацию и слияние веток zakhar@MacBook-Air-Zakhar project % git checkout main Already on 'main' Your branch is up to date with 'origin/main'. zakhar@MacBook-Air-Zakhar project % git merge double Auto-merging main.cpp Merge made by the 'ort' strategy. main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) zakhar@MacBook-Air-Zakhar project % git log --oneline --decorate --all --graph * 7afa177 (HEAD -> main) Merge branch 'double' слияние веток |\ | * f12b299 (double) code: добавил double * | 36d0e5d (origin/main) code: добавил вывод минимума(rebase) |/ * b0d09c9 code: добавил вывод максимума * 3fa5eee code: добавил деление * 8011a76 code: добавил умножение * 0da39db code: добавил вычитание * 9187623 code: добавил сумму * 7bff90e code: сделал коммит * d40b59d code: заготовка программы