diff --git a/report.txt b/report.txt new file mode 100644 index 0000000..3144d76 --- /dev/null +++ b/report.txt @@ -0,0 +1,1123 @@ +Отчет по лабораторной работе № 2 "Система контроля версий Git" + +Выполнил: Антонович А. Н. +Группа: А-03-23 +Проверил: Козлюк Д. А. + +Примечание: работа выполнялась на Windows. + + + + 1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ + + + + 2. Просмотрел файлы в рабочем каталоге можно командой "ls" - пусто: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ ls + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ + + + + 3. Создал каталоги Алисы и Боба, создал каталог "project", +изучил команду "cd" в процессе: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ mkdir alice + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ mkdir bob + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ cd bob + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob +$ cd .. + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02 +$ cd alice + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice +$ mkdir project + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice +$ ls +project/ + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice +$ cd project + + + + 4. Инициализировал репозитарий: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project +$ git init +Initialized empty Git repository in C:/Users/sanya/OneDrive/Рабочий стол/lab02/alice/project/.git/ + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) +$ + + + + 5. Поменял имя ветки с master на main: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) +$ git branch -m main + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ + + + + 6. Настроил репозитарий Алисы: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git config user.name 'Alice (AntonovichAN)' + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git config user.email 'AntonovichAN@mpei.ru' + + + + 7. Запустил CodeBlocks и создал проект в репозитарии Алисы. + + + + 8. Проверил статус: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git status +On branch main + +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) + + + +строка "On branch main" означает, что сейчас мы находимся на ветке main +строка "No commits yet" означает, что еще не существует коммитов +строка "untracked files: (...)" перечисляет, какие файлы не отслеживаются коммитами и подсказывает команду для отслеживания файлов +строка "nothing added to commit ..." показывает, что еще ни один файл не добавлен в коммит и присутствуют неотслеживаемые файлы и подсказывает команду для отслеживания файлов + + + + 9. Начинаю отслеживать файл main.cpp, и проверяю изменения: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add main.cpp + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/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) + bin/ + obj/ + project.cbp + + +строка "Changes to be committed:" перечисляет произошедшие изменения - новый отслеживаемый файл main.cpp + + + + 10. Выполнил коммит: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -m 'code: заготовка программы' +[main (root-commit) c52bc42] code: заготовка программы + 1 file changed, 9 insertions(+) + create mode 100644 main.cpp + + + + 11. Добавил файл project.cbp в индекс и сделал с ним коммит: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/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 + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -m 'build: добавлен файл проекта' +[main c41f6c7] build: добавлен файл проекта + 1 file changed, 40 insertions(+) + create mode 100644 project.cbp + + + + 12. Заменил тело функции main() на ввод двух чисел и проверил статус: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/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") + +строка "Changes not staged for commit:" перечисляет произведенные изменения и подсказывает комманды для коммита изменений или отмены изменений + + + + 13. Использовал три способа для коммита измененинй: + +#первый: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add main.cpp + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -m "code: первое изменение" +[main 2b8ab7b] code: первое изменение + 1 file changed, 3 insertions(+), 2 deletions(-) + + +#второй: + +добавил в программу вывод суммы a и b + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add -u + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -m 'code: вывод суммы' +[main 88c5c69] code: вывод суммы + 1 file changed, 1 insertion(+) + +#третий: + +добавил в программу вывод разности a и b + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -a -m 'code: вывод разности' +[main 546e058] code: вывод разности + 1 file changed, 2 insertions(+), 1 deletion(-) + + + + 14. Создал пустой файл в CodeBlocks и занес в список файлы для игнорирования, добавил .gitignore в список отслеживаемых файлов и закоммитил изменения: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git status +On branch main +Untracked files: + (use "git add ..." to include in what will be committed) + .gitignore + +nothing added to commit but untracked files present (use "git add" to track) + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add .gitignore + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -m 'git: игнорирование файлов' +[main 6a362f0] git: игнорирование файлов + 1 file changed, 4 insertions(+) + create mode 100644 .gitignore + + + + 15. Просмотрел историю коммитов разными вариантами: + +#первый: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log +commit 6a362f026be35ff22b92b51dd420b59f59c574f7 (HEAD -> main) +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:10:17 2024 +0300 + + git: игнорирование файлов + +commit 546e058c9dcc717142c3a95a84cedf6aaa49e900 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:09:22 2024 +0300 + + code: вывод разности + +commit 88c5c69583bcde4b9a44f8e7323d61347c3fe3d9 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:08:24 2024 +0300 + + code: вывод суммы + +commit 2b8ab7b028c8257a6bc58a238704c91c48b45fc3 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:07:14 2024 +0300 + + code: первое изменение + +commit c41f6c70d0b2b343662a0c2ebf3f2438407d6cb8 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:05:47 2024 +0300 + + build: добавлен файл проекта + +commit c52bc425786c33d24d55c4c4d00c7bf7f095a351 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:04:43 2024 +0300 + + code: заготовка программы +(END) + + +#второй: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 6a362f0 (HEAD -> main) git: игнорирование файлов +* 546e058 code: вывод разности +* 88c5c69 code: вывод суммы +* 2b8ab7b code: первое изменение +* c41f6c7 build: добавлен файл проекта +* c52bc42 code: заготовка программы + + +#третий: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --stat +commit 6a362f026be35ff22b92b51dd420b59f59c574f7 (HEAD -> main) +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:10:17 2024 +0300 + + git: игнорирование файлов + + .gitignore | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 546e058c9dcc717142c3a95a84cedf6aaa49e900 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:09:22 2024 +0300 + + code: вывод разности + + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 88c5c69583bcde4b9a44f8e7323d61347c3fe3d9 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:08:24 2024 +0300 + + code: вывод суммы + + main.cpp | 1 + + 1 file changed, 1 insertion(+) + +commit 2b8ab7b028c8257a6bc58a238704c91c48b45fc3 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:07:14 2024 +0300 + + code: первое изменение + + main.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit c41f6c70d0b2b343662a0c2ebf3f2438407d6cb8 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:05:47 2024 +0300 + + build: добавлен файл проекта + + project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 40 insertions(+) + +commit c52bc425786c33d24d55c4c4d00c7bf7f095a351 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:04:43 2024 +0300 + + code: заготовка программы + + main.cpp | 9 +++++++++ + 1 file changed, 9 insertions(+) +(END) + + +Комманда git log --stat выводит: +Полный хеш коммита, автора коммита, дата создания, название, отслеживаемый файл и изменения данного файла. + + + + 16. Отфильтровал коммиты по теме build, потом затрагивающие project.cbp: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --grep "build:" +commit c41f6c70d0b2b343662a0c2ebf3f2438407d6cb8 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:05:47 2024 +0300 + + build: добавлен файл проекта + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log -- project.cbp +commit c41f6c70d0b2b343662a0c2ebf3f2438407d6cb8 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:05:47 2024 +0300 + + build: добавлен файл проекта + + + + 17. Просмотрел последний комиит 3 разными способами и просмотрел предпоследний коммит: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git show main +commit 6a362f026be35ff22b92b51dd420b59f59c574f7 (HEAD -> main) +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:10:17 2024 +0300 + + git: игнорирование файлов + +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..aa24a77 +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,4 @@ ++/bin ++/obj ++/project.layout ++/project.depend +\ No newline at end of file + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git show HEAD +commit 6a362f026be35ff22b92b51dd420b59f59c574f7 (HEAD -> main) +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:10:17 2024 +0300 + + git: игнорирование файлов + +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..aa24a77 +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,4 @@ ++/bin ++/obj ++/project.layout ++/project.depend +\ No newline at end of file + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git show 6a362f0 +commit 6a362f026be35ff22b92b51dd420b59f59c574f7 (HEAD -> main) +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:10:17 2024 +0300 + + git: игнорирование файлов + +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..aa24a77 +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,4 @@ ++/bin ++/obj ++/project.layout ++/project.depend +\ No newline at end of file + + + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git show HEAD~1 +commit 546e058c9dcc717142c3a95a84cedf6aaa49e900 +Author: Alice (AntonovichAN) +Date: Wed Aug 28 20:09:22 2024 +0300 + + code: вывод разности + +diff --git a/main.cpp b/main.cpp +index 4364dbc..8435233 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,5 +7,6 @@ int main() + cout << "Enter A and B: "; + int a, b; + cin >> a >> b; +- cout << "A + B = " << a + b << '\n'; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + } + + + + 18.Внес изменения в main.cpp, после просмотрел изменения между самым первым коммитом и коммитом, добавляющим вывод разности: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git diff +diff --git a/main.cpp b/main.cpp +index 8435233..f372c78 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,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" отображены файлы для сравнения +Во втрой строке "index" отображаются внутренние метаданные git, номера в этих выходных данных соответствуют хеш-идентификаторам версий объектов git +В следующих двух строках выводятся обозначения изменений +В пятой строке заголовок врагмента, заголовок визуально описывает изменения в файле: В нашем случае было извлечено 8 строк начиная со строки 7, после извлечения было добавлено 8 строк начиная с 8 +Остальное содержимое фрагмента сравнения — это недавние изменения. Каждой измененной строке предшествует символ + или -, указывающий на источник входных данных сравнения. + для b/main.cpp и - для a/main.cpp + + + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git diff HEAD~5 HEAD~1 +diff --git a/main.cpp b/main.cpp +index b4392ec..8435233 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -4,6 +4,9 @@ using namespace std; + + int main() + { +- cout << "Hello world!" << endl; +- return 0; ++ cout << "Enter A and B: "; ++ int a, b; ++ cin >> a >> b; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + } +diff --git a/project.cbp b/project.cbp +new file mode 100644 +index 0000000..99bb702 +--- /dev/null ++++ b/project.cbp +@@ -0,0 +1,40 @@ ++ ++ ++ ++ ++ ++ +(END) + + + + 19. Коммит произведения и откат изменений: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git add main.cpp + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -m "code: вывод произведения" +[main 997d912] code: вывод произведения + 1 file changed, 2 insertions(+), 1 deletion(-) + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git reset --hard HEAD~1 +HEAD is now at 6a362f0 git: игнорирование файлов + + + + 20. Добавлю комментарий в программу и откачу изменения: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -a -m 'code: комментарий' +[main b89482c] code: комментарий + 1 file changed, 1 insertion(+), 1 deletion(-) + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git checkout HEAD -- main.cpp + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git reset --hard HEAD~1 +HEAD is now at 6a362f0 git: игнорирование файлов + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 6a362f0 (HEAD -> main) git: игнорирование файлов +* 546e058 code: вывод разности +* 88c5c69 code: вывод суммы +* 2b8ab7b code: первое изменение +* c41f6c7 build: добавлен файл проекта +* c52bc42 code: заготовка программы + + + + 21. Зарегестрировался на сервере и создал ключи: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ ssh-keygen +Generating public/private ed25519 key pair. +Enter file in which to save the key (/c/Users/sanya/.ssh/id_ed25519): +/c/Users/sanya/.ssh/id_ed25519 already exists. +Overwrite (y/n)? y +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /c/Users/sanya/.ssh/id_ed25519 +Your public key has been saved in /c/Users/sanya/.ssh/id_ed25519.pub +The key fingerprint is: +SHA256:J9ulN6EA6cfydpJ0zdhN8HhG0esOJOTkOxY6Wat4j8Y sanya@DESKTOP-M9EDCFL +The key's randomart image is: ++--[ED25519 256]--+ +| . oo | +| . o = .| +| o = . = .| +| . o @ * . | +| o S B % o | +| = % O o . | +| O O + o | +| o E.. . . | +| o... | ++----[SHA256]-----+ + + + + 22. Запустил агента и дал доступ к ключам: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ eval $(ssh-agent -s) +Agent pid 1610 + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ ssh-add +Enter passphrase for /c/Users/sanya/.ssh/id_ed25519: +Identity added: /c/Users/sanya/.ssh/id_ed25519 (sanya@DESKTOP-M9EDCFL) + + + + 23. Подключился к репозиторию по SSH - не вышло, подключаюсь по HTTP: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git remote add origin http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git push -u origin main +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.31 KiB | 395.00 KiB/s, done. +Total 18 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0) +remote: . Processing 1 references +remote: Processed 1 references in total +To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git + * [new branch] main -> main +branch 'main' set up to track 'origin/main'. + + + + 24. Открыл git bush в каталоге боба и скопировал проект. После отредактировал профиль боба + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob +$ git clone http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git project +Cloning into 'project'... +remote: Enumerating objects: 18, done. +remote: Counting objects: 100% (18/18), done. +remote: Compressing objects: 100% (16/16), done. +remote: Total 18 (delta 2), reused 0 (delta 0), pack-reused 0 +Receiving objects: 100% (18/18), done. +Resolving deltas: 100% (2/2), done. + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob +$ cd project + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git config user.name 'Bob (AntonovichAN)' + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git config user.email 'AntonovichAN@mpei.ru' + + + + 25. Добавил вывод произведения и сделал коммит: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git add main.cpp + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git commit -m 'code: печать произведения' +[main e1c9396] code: печать произведения + 1 file changed, 2 insertions(+), 1 deletion(-) + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* e1c9396 (HEAD -> main) code: печать произведения +* 6a362f0 (origin/main, origin/HEAD) git: игнорирование файлов +* 546e058 code: вывод разности +* 88c5c69 code: вывод суммы +* 2b8ab7b code: первое изменение +* c41f6c7 build: добавлен файл проекта +* c52bc42 code: заготовка программы + + + + + 26. Отправил коммит на сервер: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ 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), 417 bytes | 417.00 KiB/s, done. +Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0) +remote: . Processing 1 references +remote: Processed 1 references in total +To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git + 6a362f0..e1c9396 main -> main + + + + 27. В каталоге Алисы выполнил загрузку изменений: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git fetch +remote: Enumerating objects: 5, done. +remote: Counting objects: 100% (5/5), done. +remote: Compressing objects: 100% (3/3), done. +remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 397 bytes | 39.00 KiB/s, done. +From http://uit.mpei.ru/git/AntonovichAN/cs-lab02 + 6a362f0..e1c9396 main -> origin/main + +В рабочей копии изменений еще не произошло + + + + 28. Просмотрел историю всех веток: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* e1c9396 (origin/main) code: печать произведения +* 6a362f0 (HEAD -> main) git: игнорирование файлов +* 546e058 code: вывод разности +* 88c5c69 code: вывод суммы +* 2b8ab7b code: первое изменение +* c41f6c7 build: добавлен файл проекта +* c52bc42 code: заготовка программы + + + + 29. Продвинул ветку main к версии на сервере: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git pull --ff-only +Updating 6a362f0..e1c9396 +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* e1c9396 (HEAD -> main, origin/main) code: печать произведения +* 6a362f0 git: игнорирование файлов +* 546e058 code: вывод разности +* 88c5c69 code: вывод суммы +* 2b8ab7b code: первое изменение +* c41f6c7 build: добавлен файл проекта +* c52bc42 code: заготовка программы + + + + 30. Делаю обратные действия только от имени Алисы: + +вписал в программу печать деления, сделал коммит и отправил на сервер + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -a -m 'code: печать деления' +[main f4d8519] code: печать деления + 1 file changed, 2 insertions(+), 1 deletion(-) + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ 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 (from 0) +remote: . Processing 1 references +remote: Processed 1 references in total +To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git + e1c9396..f4d8519 main -> main + + + + 31. От имени Боба: + +$ git fetch +remote: Enumerating objects: 5, done. +remote: Counting objects: 100% (5/5), done. +remote: Compressing objects: 100% (3/3), done. +remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 389 bytes | 27.00 KiB/s, done. +From http://uit.mpei.ru/git/AntonovichAN/cs-lab02 + e1c9396..f4d8519 main -> origin/main + +В рабочей копии изменений еще не произошло + + + 32. Просмотрел историю всех веток и продвинул ветку main к версии на сервере: + +$ git log --oneline --decorate --all --graph +* 316accc (origin/main, origin/HEAD) code: вывод деления +* 5c3930e (HEAD -> main) code: печать произведения +* 7271cff git: игнорирование файлов +* 6b53fb2 code: вывод разности +* c4242e9 code: вывод суммы +* d026106 code: первое изменение +* 64dd879 build: добавлен файл проекта +* e1a7a5b code: заготовка программы + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git pull --ff-only +Updating e1c9396..f4d8519 +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* f4d8519 (HEAD -> main, origin/main, origin/HEAD) code: печать деления +* e1c9396 code: печать произведения +* 6a362f0 git: игнорирование файлов +* 546e058 code: вывод разности +* 88c5c69 code: вывод суммы +* 2b8ab7b code: первое изменение +* c41f6c7 build: добавлен файл проекта +* c52bc42 code: заготовка программы + + + + 33. «На машине Алисы» дополнил программу вывода максимума, сделал коммит и отправил на сервер. + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -a -m 'code: печать максимума' +[main 8c0136e] code: печать максимума + 1 file changed, 5 insertions(+) + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ 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), 418 bytes | 418.00 KiB/s, done. +Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0) +remote: . Processing 1 references +remote: Processed 1 references in total +To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git + f4d8519..8c0136e main -> main + + + + 34. «На машине Боба» дополнил программу печатью минимума, сделал коммит и попытался отправить его на сервер. + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git commit -a -m 'code: печать минимума' +[main 9926341] code: печать минимума + 1 file changed, 5 insertions(+) + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git push +To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git + ! [rejected] main -> main (fetch first) +error: failed to push some refs to 'http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git' +hint: Updates were rejected because the remote contains work that you do not +hint: have locally. This is usually caused by another repository pushing to +hint: the same ref. If you want to integrate the remote changes, use +hint: 'git pull' before pushing again. +hint: See the 'Note about fast-forwards' in 'git push --help' for details. + + + + 35. Загрузил коммиты из удаленного хранилища и отобразил историю всех веток: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git fetch +remote: Enumerating objects: 5, done. +remote: Counting objects: 100% (5/5), done. +remote: Compressing objects: 100% (3/3), done. +remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 398 bytes | 22.00 KiB/s, done. +From http://uit.mpei.ru/git/AntonovichAN/cs-lab02 + f4d8519..8c0136e main -> origin/main + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING) +$ git log --oneline --decorate --all --graph +* 9926341 (HEAD -> main) code: печать минимума +| * 8c0136e (origin/main, origin/HEAD) code: печать максимума +|/ +* f4d8519 code: печать деления +* e1c9396 code: печать произведения +* 6a362f0 git: игнорирование файлов +* 546e058 code: вывод разности +* 88c5c69 code: вывод суммы +* 2b8ab7b code: первое изменение +* c41f6c7 build: добавлен файл проекта +* c52bc42 code: заготовка программы + + + + 36. Попытался переместить коммит Боба поверх коммита Алисы. + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING) +$ git rebase origin/main +Auto-merging main.cpp +CONFLICT (content): Merge conflict in main.cpp +error: could not apply 9926341... 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". +hint: Disable this message with "git config advice.mergeConflict false" +Could not apply 9926341... code: печать минимума + + + + 37. Проверил статус. +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING) +$ git status +interactive rebase in progress; onto 8c0136e +Last command done (1 command done): + pick 9926341 code: печать минимума +No commands remaining. +You are currently rebasing branch 'main' on '8c0136e'. + (fix conflicts and then run "git rebase --continue") + (use "git rebase --skip" to skip this patch) + (use "git rebase --abort" to check out the original branch) + +Unmerged paths: + (use "git restore --staged ..." to unstage) + (use "git add ..." to mark resolution) + both modified: main.cpp + +Untracked files: + (use "git add ..." to include in what will be committed) + main.exe + main.o + +no changes added to commit (use "git add" and/or "git commit -a") + + +сатус выводит, что сейчас выполняется rebase c коммитом(печаь максимума) и выдает предупреждение о том, что произошло расхождение текущей ветки и ветки на сервере и предлагает пути решения проблемы + + + + + 38. Изменил код и продолжил операцию rebase: + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING) +$ git add main.cpp + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING) +$ git rebase origin/main +fatal: It seems that there is already a rebase-merge directory, and +I wonder if you are in the middle of another rebase. If that is the +case, please try + git rebase (--continue | --abort | --skip) +If that is not the case, please + rm -fr ".git/rebase-merge" +and run me again. I am stopping in case you still have something +valuable there. + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING) +$ git rebase --continue + +code: печать минимума + +# Conflicts: +# main.cpp + +# Please enter the commit message for your changes. Lines starting +# with '#' will be ignored, and an empty message aborts the commit. +# +# interactive rebase in progress; onto 8c0136e +# Last command done (1 command done): +# pick 9926341 code: печать минимума +# No commands remaining. +# You are currently rebasing branch 'main' on '8c0136e'. +# +# Changes to be committed: +# modified: main.cpp +# +# Untracked files: +# main.exe +# main.o + + + +Сделал коммит и продолжил операцию rebase + + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|REBASE 1/1) +$ git commit -a -m 'code: печать минимума' +[detached HEAD ae118a9] code: печать минимума + 1 file changed, 5 insertions(+) + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|REBASE 1/1) +$ git rebase --continue +Successfully rebased and updated refs/heads/main. + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git log --oneline +ae118a9 (HEAD -> main) code: печать минимума +8c0136e (origin/main, origin/HEAD) code: печать максимума +f4d8519 code: печать деления +e1c9396 code: печать произведения +6a362f0 git: игнорирование файлов +546e058 code: вывод разности +88c5c69 code: вывод суммы +2b8ab7b code: первое изменение +c41f6c7 build: добавлен файл проекта +c52bc42 code: заготовка программы + +$ 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), 393 bytes | 393.00 KiB/s, done. +Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0) +remote: . Processing 1 references +remote: Processed 1 references in total +To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git + 8c0136e..ae118a9 main -> main + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) +$ git log --oneline +ae118a9 (HEAD -> main, origin/main, origin/HEAD) code: печать минимума +8c0136e code: печать максимума +f4d8519 code: печать деления +e1c9396 code: печать произведения +6a362f0 git: игнорирование файлов +546e058 code: вывод разности +88c5c69 code: вывод суммы +2b8ab7b code: первое изменение +c41f6c7 build: добавлен файл проекта +c52bc42 code: заготовка программы + + + + 39. Изменяю тип данных от лица Алисы. + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git branch double + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git checkout double +Switched to branch 'double' + +изменил тип данных в коде + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git commit -a -m 'code: тип double' +[double 89573ea] code: тип double +1 file changed, 1 insertions(+), 1 deletion(-) + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git checkout main +Switched to branch 'main' + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git fetch +~ ~ ~ ~ ~ ~ ~ + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git pull +~ ~ ~ ~ ~ ~ ~ + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git merge double +[main a00075b] code merge double + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git push +Enumerating objects: 10, done. +Counting objects: 100% (10/10), done. +Delta compression using up to 4 threads +Compressing objects: 100% (6/6), done. +Writing objects: 100% (6/6), 696 bytes | 232.00 KiB/s, done. +Total 6 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0) +remote: . Processing 1 references +remote: Processed 1 references in total +To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git + ae118a9..a00075b main -> main + +sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) +$ git log --oneline +a00075b (HEAD -> main, origin/main) code merge double +89573ea (double) code: тип double +ae118a9 code: печать минимума +8c0136e code: печать максимума +f4d8519 code: печать деления +e1c9396 code: печать произведения +6a362f0 git: игнорирование файлов +546e058 code: вывод разности +88c5c69 code: вывод суммы +2b8ab7b code: первое изменение +c41f6c7 build: добавлен файл проекта +c52bc42 code: заготовка программы