diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..c0e1e3b --- /dev/null +++ b/README.txt @@ -0,0 +1,981 @@ +Отчет по лабораторной работе № 2 "Система контроля версий Git" + +Выполнил: Артюшина В. В. +Группа: А-01-22 +Проверил: + +Примечание: работа выполнялась на Windows. + +1. Создала на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02 +$ + + +2. Просмотрела файлы в рабочем каталоге командой "ls" --- пусто: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02 +$ ls + +Laptop@Artyushina MINGW64 ~/Desktop/lab02 +$ + + +3. Создала каталоги Алисы и Боба, создала каталог "project", +изучила команду "cd" в процессе: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02 +$ mkdir alice + +Laptop@Artyushina MINGW64 ~/Desktop/lab02 +$ mkdir bob + +Laptop@Artyushina MINGW64 ~/Desktop/lab02 +$ cd alice + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice +$ mkdir project + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice +$ ls +project/ + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice +$ cd project + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project +$ cd .. + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice +$ cd project + + + +4. Инициализировала репозитарий: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project +$ git init +Initialized empty Git repository in C:/Users/Laptop/Desktop/lab02/alice/project/.git/ + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (master) +$ + +//У меня имя ветки по умолчанию не настроено. Git создал ветку под названием master, что видно в приглашении терминала. +//Поменяю имя ветки на main командой git branch -m main: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (master) +$ git branch -m main + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ + + +5. Настроила репозитарий Алисы, чтобы коммиты были от ее имени: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git config user.name 'Alice (ArtyushinaVV)' + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git config user.email 'ArtiushinaVV@mpei.ru' + + + +6. Просмотрела состояние рабочей копии: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git status +On branch main + +No commits yet + +Untracked files: + (use "git add ..." to include in what will be committed) + main.cpp + project.cbp + +nothing added to commit but untracked files present (use "git add" to track) + +// +On branch main - ссылка HEAD указывает на ветку main +No commits yet - говорит о том, что еще не было создано коммитов +Untracked files: + (use "git add ..." to include in what will be committed) + main.cpp + project.cbp - показывает не отслеживаемые файлы в хранилище git, и подсказывает как их добавить +nothing added to commit but untracked files present (use "git add" to track) - говорит о том, что нет добавленных (отслеживаемых) файлов, которые можно будет закоммитить + + +//Занесла под Git файл main.cpp (в набор изменений) + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git status +On branch main + +No commits yet + +Changes to be committed: + (use "git rm --cached ..." to unstage) + new file: main.cpp + +Untracked files: + (use "git add ..." to include in what will be committed) + project.cbp + +// +Changes to be committed: + (use "git rm --cached ..." to unstage) + new file: main.cpp - Появилась строка с файлами в индексе, стоящими в очереди на коммит (так же подсказка для удаления) + +//Выполнила коммит с файлом main.cpp и коротким сообщением: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: заготовка программы' +[main (root-commit) 8949472] code: заготовка программы + 1 file changed, 9 insertions(+) + create mode 100644 main.cpp + + +7. Добавила файл project.cbp в индекс и сделала коммит с ним, тема — build. +Сообщение после темы по смыслу изменений - «add project file»: + + +Laptop@Artyushina 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 + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'build: add project file' +[main d331978] build: add project file + 1 file changed, 38 insertions(+) + create mode 100644 project.cbp + + +8. Заменила тело функции main() на ввод двух чисел и посмотрела состояние репозитария: + + +Laptop@Artyushina 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") + +//После добавления в программу ввода 2х чисел появилась строка о том, что файл main.cpp был изменен (modified: main.cpp) + + +9. закоммитила изменения: + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m "code: добавлен вывод суммы a и b в программу" +[main 88129fe] code: добавлен вывод суммы a и b в программу + 1 file changed, 4 insertions(+), 2 deletions(-) + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add -u + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m "code: добавлен вывод разности a и b в программу" +[main f91e880] code: добавлен вывод разности a и b в программу + 1 file changed, 2 insertions(+), 1 deletion(-) + + +10. Занесла в список игнорируемых каталог bin: + +Laptop@Artyushina 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: project.cbp + +Untracked files: + (use "git add ..." to include in what will be committed) + .gitignore + obj/ + +no changes added to commit (use "git add" and/or "git commit -a") + +//можно видеть, что каталог bin не отображается. + +//Занесла в список игнорируемых каталог obj: + +Laptop@Artyushina 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: project.cbp + +Untracked files: + (use "git add ..." to include in what will be committed) + .gitignore + +no changes added to commit (use "git add" and/or "git commit -a") + +//Занесла под контроль версий файл .gitignore. Создала коммит с .gitignore, тема — git. + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add .gitignore + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'git: ignore 2 files' +[main e918026] git: ignore 2 files + 1 file changed, 3 insertions(+) + create mode 100644 .gitignore + + +11. С помощью команды git log и различных ее опций просматриваем журнал коммитов: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log +commit e9180262fd84bc617f3b3e6f03ac6b5e5171c398 (HEAD -> main) +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 17:02:01 2023 +0300 + + git: ignore 2 files + +commit f91e880ba8f124b920300cd8abb56b888d678bf4 +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 16:26:58 2023 +0300 + + code: добавлен вывод разности a и b в программу + +commit 88129fed9eb9ecbb8a814c3ba4b60e4259ff459e +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 16:24:32 2023 +0300 + + code: добавлен вывод суммы a и b в программу + +commit d331978afd0359a95155a8961817e82320b3c8b6 +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 16:20:44 2023 +0300 + + build: add project file + +commit 89494727e0cfd75e78112f44225bfd6903a52fd9 +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 16:19:03 2023 +0300 + + code: заготовка программы + +// используем команду git log --stat: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --stat +commit e9180262fd84bc617f3b3e6f03ac6b5e5171c398 (HEAD -> main) +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 17:02:01 2023 +0300 + + git: ignore 2 files + + .gitignore | 3 +++ + 1 file changed, 3 insertions(+) + +commit f91e880ba8f124b920300cd8abb56b888d678bf4 +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 16:26:58 2023 +0300 + + code: добавлен вывод разности a и b в программу + + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 88129fed9eb9ecbb8a814c3ba4b60e4259ff459e +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 16:24:32 2023 +0300 + + code: добавлен вывод суммы a и b в программу + + main.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit d331978afd0359a95155a8961817e82320b3c8b6 +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 16:20:44 2023 +0300 + + build: add project file + + project.cbp | 38 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 38 insertions(+) + +commit 89494727e0cfd75e78112f44225bfd6903a52fd9 +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 16:19:03 2023 +0300 + + code: заготовка программы + + main.cpp | 9 +++++++++ + 1 file changed, 9 insertions(+) + +// +В последнем коммите: +commit e9180262fd84bc617f3b3e6f03ac6b5e5171c398 (HEAD -> main) - показывается хэш коммита, по которому можно потом найти этот коммит +Author: Alice (ArtyushinaVV) - записан автор, внесший этот коммит +Date: Sat Mar 25 17:02:01 2023 +0300 – время создания коммита +git: ignore 2 files - комментарий к коммиту +.gitignore | 3 +++ - перечисление файлов, в которых произошли изменения и кол-во измененных строчек(“+” добавленная стр., “-” удаленная стр.) + 1 file changed, 3 insertions(+) - приведена статистика изменений данных файлов + + +//git log --oneline --decorate показывает коммиты компактно (--oneline), а также показывает ссылки, концы веток и тэги (--decorate): + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate +e918026 (HEAD -> main) git: ignore 2 files +f91e880 code: добавлен вывод разности a и b в программу +88129fe code: добавлен вывод суммы a и b в программу +d331978 build: add project file +8949472 code: заготовка программы + + +//git log --oneline --decorate --all --graph делает то же для всех веток (--all), причем коммиты отображаются в терминале в виде дерева (--graph). + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* e918026 (HEAD -> main) git: ignore 2 files +* f91e880 code: добавлен вывод разности a и b в программу +* 88129fe code: добавлен вывод суммы a и b в программу +* d331978 build: add project file +* 8949472 code: заготовка программы + + +// Просмотрела информацию о коммите по измененному файлу и по теме коммита (используя команды для просмотра отдельных коммитов git log -- project.cbp и git log --grep "build:"): + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --grep "build:" +commit d331978afd0359a95155a8961817e82320b3c8b6 +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 16:20:44 2023 +0300 + + build: add project file + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log -- project.cbp +commit d331978afd0359a95155a8961817e82320b3c8b6 +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 16:20:44 2023 +0300 + + build: add project file + +// Тремя способами просмотрела информацию о предпоследнем коммите (результат всех способов один, поэтому в отчете не повторялся): + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git show HEAD~1 +commit f91e880ba8f124b920300cd8abb56b888d678bf4 +Author: Alice (ArtyushinaVV) +Date: Sat Mar 25 16:26:58 2023 +0300 + + code: добавлен вывод разности a и b в программу + +diff --git a/main.cpp b/main.cpp +index 6f95b60..eae9f61 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'; + } + + +//Добавиа изменения в рабочую копию и посмотрела их с помощью команды git diff: + +Laptop@Artyushina 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 eae9f61..6660c64 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'; + } +diff --git a/project.cbp b/project.cbp +index c4697a9..17c9662 100644 +--- a/project.cbp ++++ b/project.cbp +@@ -32,6 +32,7 @@ + + + ++ + + + + + +// +diff --git a/main.cpp b/main.cpp - входные данные команды для сравнения файлов +index eae9f61..6660c64 100644 +--- a/main.cpp ++++ b/main.cpp - заголовок с легендой изменения, место измененного кода и измененная функция +На следующей строке идут строки вокруг измененной части, удаленные и добавленные строки + + + +//Просмотрела изменения между самым первым коммитом и коммитом, добавляющим вывод разности: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git diff 89494727e0cfd75e78112f44225bfd6903a52fd9 f91e880ba8f124b920300cd8abb56b888d678bf4 +diff --git a/main.cpp b/main.cpp +index b4392ec..eae9f61 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'; + } + + +12. Закоммитила изменения в рабочей копии (вывод произведения) и откатила этот коммит, то есть вернулась к предыдущему: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: вывод произведения' +[main cc26e40] code: вывод произведения + 1 file changed, 2 insertions(+), 1 deletion(-) + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git reset --hard HEAD~1 +HEAD is now at e918026 git: ignore 2 files + +//Добавила над функцией main() комментарий: // you may type whatever you want. Убрала изменения в main.cpp откатив этот файл к состоянию в последнем коммите (HEAD): + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git checkout HEAD -- main.cpp + + +13.Обмен кодом через удалённое хранилище. +Для загрузки данных в репозитарий GitHub будет использоваться протокол SSH. Поэтому для обмена данными с сервером нужно сгенерировать пару из открытого и закрытого ключей: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ ssh-keygen +Generating public/private rsa key pair. +Enter file in which to save the key (/c/Users/Laptop/.ssh/id_rsa): +Created directory '/c/Users/Laptop/.ssh'. +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /c/Users/Laptop/.ssh/id_rsa +Your public key has been saved in /c/Users/Laptop/.ssh/id_rsa.pub +The key fingerprint is: +SHA256:RiUsIw8T5/PpISyAaVFmXstcAGJglDlk1pmB1LK/2aU Laptop@Artyushina +The key's randomart image is: ++---[RSA 3072]----+ +| .=BO.++... | +| o.=oO+o.. | +| ..o B+Xoo . | +| ..E &+o o | +| +SB.B | +| + = . | +| . . | +| | +| | ++----[SHA256]-----+ + + + +//Также после этого отображаются уникальные данные для ключа. +Поскольку в работе вводить пароль при каждом использовании ключа может быть неудобно, можно использовать программу-агент, которую достаточно запустить перед началом работы: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ eval $(ssh-agent -s) +Agent pid 1375 + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ ssh-add +Enter passphrase for /c/Users/Laptop/.ssh/id_rsa: +Identity added: /c/Users/Laptop/.ssh/id_rsa (Laptop@Artyushina) + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ cat ~/.ssh/id_rsa.pub +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDXQoH2jGDw8CsMqG7g9d8gcuTe8RJCfersSDuiZdYuLUihRx9G113a+t4VhfzWxVwOuvOqxoXAFRVthi1BlMF74qXly7vfcGh2oHLGzRZTf4Hoxz/xBL3iWYOcv2qeRXCLmap+ywfBnDig1blWKc6OytcITJ7kunLFgYBn25zA2sLK5fubbPlt7uutuFcRiyen4Qtd7rlwS3RDXXwptH+CD8t2BGGQb34d65I/aczvhwJDfaq/Fy7+GzwDSnZIeL4KT3iPhbEzWXrNcXpJW/Az788HS2x/s7TDZBvAUbydJktWT8y7Lp0uoemLgQHp5W2i+6S8Vv+QWNI2LQAqpFK0/6TvUw2fwSbB2zfuDQwiihdUSmBbnsKkbCwqZJFk6vHR6H/u1OEQo3QOYRVjCNisdvdcJhvt1Hmi5j06lu2/jQgksxa2MKbCaWzzO4iHXZZ9Xv0EOA9GcZBvZisM/DdimfESdwec7e9bbPSuUDpu9saHDyJttWFvcC3UXfMvVHs= Laptop@Artyushina + + + +//Затем в настройках аккаунта GitHub нужно добавить публичный ключ, который по умолчанию записывается в файл id_rsa.pub. +Теперь добавим репозитарий на который будем загружать хранилище git, и загрузим хранилище git на GitHub с помощью команды git push: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git remote add origin git@uit.mpei.ru:ArtiushinaVV/cs-lab02.git + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push -u origin main +Enumerating objects: 15, done. +Counting objects: 100% (15/15), done. +Delta compression using up to 8 threads +Compressing objects: 100% (13/13), done. +Writing objects: 100% (15/15), 2.01 KiB | 2.01 MiB/s, done. +Total 15 (delta 1), reused 0 (delta 0), pack-reused 0 +remote: . Processing 1 references +remote: Processed 1 references in total +To uit.mpei.ru:ArtiushinaVV/cs-lab02.git + * [new branch] main -> main +branch 'main' set up to track 'origin/main'. + + +//К работе присоединяется боб. Клонировала репозитарий с помощью git clone: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob +$ git clone git@uit.mpei.ru:ArtiushinaVV/cs-lab02.git project +Cloning into 'project'... +remote: Enumerating objects: 15, done. +remote: Counting objects: 100% (15/15), done. +remote: Compressing objects: 100% (13/13), done. +remote: Total 15 (delta 1), reused 0 (delta 0), pack-reused 0 +Receiving objects: 100% (15/15), done. +Resolving deltas: 100% (1/1), done. + + +//Настроила хранилище Боба: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git config user.name 'Bob(ArtyushinaVV)' + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git config email.name 'ArtiushinaVV@mpei.ru' + + +//Боб добавляет новый коммит и загружает его на GitHub: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git add main.cpp + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git commit -m 'code: добавлен вывод произведения a и b' +[main 20286af] code: добавлен вывод произведения a и b + 1 file changed, 2 insertions(+), 1 deletion(-) + +//убедилась, что последний коммит сделан от лица Боба: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git show HEAD +commit 20286af16bca468f0f5ab970814adf30974a17a9 (HEAD -> main) +Author: Bob (ArtyushinaVV) +Date: Sun Mar 26 03:08:22 2023 +0300 + + code: добавлен вывод произведения a и b + +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; + } + + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa': +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:ArtiushinaVV/cs-lab02.git + b881d3b..20286af main -> main + + +//Обновила версию программы у Алисы. Для этого загрузила загрузку изменений с помощью git fetch. А затем перенесла ветку main на скачанную версию с помощью git pull: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git fetch +Enter passphrase for key '/c/Users/Laptop/.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), 405 bytes | 57.00 KiB/s, done. +From uit.mpei.ru:ArtiushinaVV/cs-lab02 + b881d3b..20286af main -> origin/main + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 20286af (origin/main) code: добавлен вывод произведения a и b +* b881d3b (HEAD -> main) git: ignore 2 files +* 7f94f09 code: добавлен вывод разности a и b в программу +* c22b733 code: добавлен вывод суммы a и b в программу +* 7c316e4 build: add project file +* b4828db code: заготовка программы + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git pull --ff-only +Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa': +Updating b881d3b..20286af +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + + +//Алиса вносит новое изменение, а Боб его скачивает: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add -u + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: добавлен вывод разности a и b' +[main 703b6ab] code: добавлен вывод разности a и b + 1 file changed, 2 insertions(+), 1 deletion(-) + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git show HEAD +commit 703b6ab1cb3f908e6c3a88907f365ad4c0104840 (HEAD -> main) +Author: Alice (ArtyushinaVV) +Date: Sun Mar 26 03:14:46 2023 +0300 + + code: добавлен вывод разности a и b + +diff --git a/main.cpp b/main.cpp +index fbd9488..862d630 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -9,6 +9,7 @@ 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; + } + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push +Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa': +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), 441 bytes | 441.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:ArtiushinaVV/cs-lab02.git + 20286af..703b6ab main -> main + + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git pull +Enter passphrase for key '/c/Users/Laptop/.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), 421 bytes | 38.00 KiB/s, done. +From uit.mpei.ru:ArtiushinaVV/cs-lab02 + 20286af..703b6ab main -> origin/main +Updating 20286af..703b6ab +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + + + +//Алиса и Боб добавляют в программу печать максимума и минимума соответственно, а затем пробуют загрузить изменения на репозитарий на сервере: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add -u + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: добавлен вывод максимума' +[main 6186529] code: добавлен вывод максимума + 1 file changed, 2 insertions(+), 1 deletion(-) + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push +Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa': +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), 448 bytes | 224.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:ArtiushinaVV/cs-lab02.git + 703b6ab..6186529 main -> main + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git add -u +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git commit -m 'code: добавлен вывод минимума' +[main 3101767] code: добавлен вывод минимума + 1 file changed, 2 insertions(+), 1 deletion(-) + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa': +To uit.mpei.ru:ArtiushinaVV/cs-lab02.git + ! [rejected] main -> main (fetch first) +error: failed to push some refs to 'uit.mpei.ru:ArtiushinaVV/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. + + +//Однако загрузить на сервер изменения получается только у Алисы потому, что Боб затем пытается загрузить версию, основанную на более старом коммите, чем самый новый коммит в репозитарии GitHub + +//Загрузила версию с сервера: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git fetch +Enter passphrase for key '/c/Users/Laptop/.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), 428 bytes | 42.00 KiB/s, done. +From uit.mpei.ru:ArtiushinaVV/cs-lab02 + 703b6ab..6186529 main -> origin/main + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* 3101767 (HEAD -> main) code: добавлен вывод минимума +| * 6186529 (origin/main, origin/HEAD) code: добавлен вывод максимума +|/ +* 703b6ab code: добавлен вывод разности a и b +* 20286af code: добавлен вывод произведения a и b +* b881d3b git: ignore 2 files +* 7f94f09 code: добавлен вывод разности a и b в программу +* c22b733 code: добавлен вывод суммы a и b в программу +* 7c316e4 build: add project file +* b4828db code: заготовка программы + + + +//Ветка main раздвоилась. +//Объединила коммиты Боба и Алисы, поместив коммит Боба выше с помощью комманды git rebase: + +Laptop@Artyushina 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 3101767... 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 3101767... code: добавлен вывод минимума + + +//Комманда завершается с ошибкой из-за конфликта в файле с кодом main.cpp. Производный файл от файла Алисы и Боба записывается в рабочую копию с помеченными метками конфликта. +Убрала метки конфликта, и доработала код так, чтобы программа компилировалась и работала. Затем загрузила изменения в индекс и продолжила операцию git rebase, с помощью флага –continue. + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1) +$ git add -u + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1) +$ git status +interactive rebase in progress; onto b656125 +Last command done (1 command done): + pick fe3618f code: добавлен вывод минимума +No commands remaining. +You are currently rebasing branch 'main' on 'b656125'. + (all conflicts fixed: run "git rebase --continue") + +Changes to be committed: + (use "git restore --staged ..." to unstage) + modified: project.cpp + + +$ git rebase --continue +[detached HEAD 7c29cf1] code: добавлен вывод минимума + 1 file changed, 4 insertions(+) +Successfully rebased and updated refs/heads/main. + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* 7c29cf1 (HEAD -> main) code: добавлен вывод минимума +* 6186529 (origin/main, origin/HEAD) code: добавлен вывод максимума +* 703b6ab code: добавлен вывод разности a и b +* 20286af code: добавлен вывод произведения a и b +* b881d3b git: ignore 2 files +* 7f94f09 code: добавлен вывод разности a и b в программу +* c22b733 code: добавлен вывод суммы a и b в программу +* 7c316e4 build: add project file +* b4828db code: заготовка программы + + + +//Отправила изменения на сервер: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa': +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), 451 bytes | 451.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:ArtiushinaVV/cs-lab02.git + 6186529..7c29cf1 main -> main + + +//В это время Алиса создаёт новую ветку (с помощью комманды git branch) для изменения типа переменных на вещественный. +Начинает она с коммита, когда добавлена печать максимума: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git branch double + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git checkout double +Switched to branch 'double' + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (double) +$ git add -u + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (double) +$ git commit -m 'code: изменен тип переменных на вещественный' +[double 0fbb331] code: изменен тип переменных на вещественный + 1 file changed, 1 insertion(+), 1 deletion(-) + + +// Затем переключилась на ветку main. И синхронизировала её: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (double) +$ git checkout main +Switched to branch 'main' +Your branch is up to date with 'origin/main'. + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git pull +Enter passphrase for key '/c/Users/Laptop/.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), 431 bytes | 53.00 KiB/s, done. +From uit.mpei.ru:ArtiushinaVV/cs-lab02 + 6186529..7c29cf1 main -> origin/main +Updating 6186529..7c29cf1 +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 0fbb331 (double) code: изменен тип переменных на вещественный +| * 7c29cf1 (HEAD -> main, origin/main) code: добавлен вывод минимума +|/ +* 6186529 code: добавлен вывод максимума +* 703b6ab code: добавлен вывод разности a и b +* 20286af code: добавлен вывод произведения a и b +* b881d3b git: ignore 2 files +* 7f94f09 code: добавлен вывод разности a и b в программу +* c22b733 code: добавлен вывод суммы a и b в программу +* 7c316e4 build: add project file +* b4828db code: заготовка программы + +//Получила одновременно две ветки. Объединила их с помощью комманды git merge. Внесла последние изменения и загрузила на GitHub: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git merge double +Auto-merging project/project.cpp +Merge made by the 'ort' strategy. + main.cpp | 2 +-p to date with 'origin/main'. + 1 file changed, 1 insertion(+), 1 deletion(-) + + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push +Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa': +Enumerating objects: 10, done. +Counting objects: 100% (10/10), done. +Delta compression using up to 8 threads +Compressing objects: 100% (6/6), done. +Writing objects: 100% (6/6), 758 bytes | 758.00 KiB/s, done. +Total 6 (delta 2), reused 0 (delta 0), pack-reused 0 +remote: . Processing 1 references +remote: Processed 1 references in total +To uit.mpei.ru:ArtiushinaVV/cs-lab02.git + 7c29cf1..68f8e53 main -> main + +//историю всех веток репозитария: + +Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 68f8e53 (HEAD -> main, origin/main) Merge branch 'double' +|\ +| * 0fbb331 (double) code: изменен тип переменных на вещественный +* | 7c29cf1 code: добавлен вывод минимума +|/ +* 6186529 code: добавлен вывод максимума +* 703b6ab code: добавлен вывод разности a и b +* 20286af code: добавлен вывод произведения a и b +* b881d3b git: ignore 2 files +* 7f94f09 code: добавлен вывод разности a и b в программу +* c22b733 code: добавлен вывод суммы a и b в программу +* 7c316e4 build: add project file +* b4828db code: заготовка программы + + + + + + + + + + + +