Отчет по лабораторной работе № 2 "Система контроля версий Git" Выполнил: Бреган И. М. Группа: А-01-24 Проверил: Челышев Э.А./Филатов С.А. Примечание: работа выполнялась на Windows. 1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02 $ 2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто: brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02 $ ls brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02 $ 3. Создал каталоги Алисы и Боба, создал каталог "project", изучил команду "cd" в процессе: brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02 $ mkdir alice brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02 $ mkdir bob brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02 $ cd bob brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob $ cd .. brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02 $ cd alice brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ mkdir project brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ cd project brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project $ cd .. brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ cd project brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project $ 4. Инициализировал репозитарий: brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project $ git init Initialized empty Git repository in C:/Users/brega/OneDrive/Рабочий стол/lab02/alice/project/.git/ brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git branch -m main brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ ls -A .git/ brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git config user.name 'Alice (BreganIM)' brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git config user.email 'BreganIM@mpei.ru' 5. Занесение файлов под контроль версий brega@Ranny 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) .vs/ project.cpp project.sln project.vcxproj project.vcxproj.filters project.vcxproj.user nothing added to commit but untracked files present (use "git add" to track) ------------------------------------------------------------------------------------------------ Отчет: On branch main — Нахожусь на ветке main(основная). No commits yet — В репозитории пока нет ни одного коммита, то есть я еще не зафиксировал никаких изменений. Untracked files: — Следующие файлы не отслеживаются Git'ом. Это означает, что они есть в рабочей директории, но не добавлены в индекс. nothing added to commit but untracked files present (use "git add" to track) — Вывод сообщает, что в репозитории пока нет файлов, добавленных в индекс, но есть не отслеживаемые файлы. ------------------------------------------------------------------------------------------------ brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add project.cpp brega@Ranny 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: project.cpp Untracked files: (use "git add ..." to include in what will be committed) .vs/ project.sln project.vcxproj project.vcxproj.filters project.vcxproj.user ------------------------------------------------------------------------------------------------ Отчет: появилась запись Changes to be committed: (use "git rm --cached ..." to unstage) new file: project.cpp что говорит о том, что мы занесли под Git/начали отслеживать данный файл(project.cpp). ------------------------------------------------------------------------------------------------ brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m 'code: заготовка программы' [main (root-commit) 186259e] code: заготовка программы 1 file changed, 20 insertions(+) create mode 100644 project.cpp 6. Составление сообщений к коммитам brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add project.sln brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m 'build: добавлен файл проекта' [main dd16e29] build: добавлен файл проекта 1 file changed, 31 insertions(+) create mode 100644 project.sln 7. Создание коммитов с изменениями brega@Ranny 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: project.cpp Untracked files: (use "git add ..." to include in what will be committed) .vs/ project.vcxproj project.vcxproj.filters project.vcxproj.user no changes added to commit (use "git add" and/or "git commit -a") ------------------------------------------------------------------------------------------------ Отчет:появилась пометка modified: project.cpp, что говорит о том что файл project.cpp был изменен(модифицирован) ------------------------------------------------------------------------------------------------ brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add project.cpp brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m 'code: добавлен запрос и вывод A и B' [main 9c8ed0b] code: добавлен запрос и вывод A и B 1 file changed, 5 insertions(+), 13 deletions(-) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add project.cpp brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m 'code: добавлен вывод суммы A и B' [main 3f4c347] code: добавлен вывод суммы A и B 1 file changed, 2 insertions(+), 1 deletion(-) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add project.cpp brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m 'code: добавлен вывод разности A и B' [main e5276e7] code: добавлен вывод разности A и B 1 file changed, 2 insertions(+), 1 deletion(-) 8.Игнорирование файлов brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git status On branch main Untracked files: (use "git add ..." to include in what will be committed) .vs/ project.vcxproj project.vcxproj.filters project.vcxproj.user nothing added to commit but untracked files present (use "git add" to track) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add .gitignore warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m "git: добавлен .gitignore" [main 571ebcf] git: добавлен .gitignore 1 file changed, 7 insertions(+) create mode 100644 .gitignore brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git status On branch main Untracked files: (use "git add ..." to include in what will be committed) .vs/ project.vcxproj project.vcxproj.filters nothing added to commit but untracked files present (use "git add" to track) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add .gitignore warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m "git: добавлен еще один доп игнор vs" [main 8fbf1f2] git: добавлен еще один доп игнор vs 1 file changed, 2 insertions(+), 1 deletion(-) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git status On branch main Untracked files: (use "git add ..." to include in what will be committed) project.vcxproj project.vcxproj.filters nothing added to commit but untracked files present (use "git add" to track) 9. Работа с журналом репозитария brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log commit 8fbf1f234779ac84b77bf597718cfaa232827d7a (HEAD -> main) Author: Alice (BreganIM) Date: Sun Mar 9 20:24:06 2025 +0300 git: добавлен еще один доп игнор vs commit 571ebcf52f95830c9ba8a519f7daa8f85cddc26f Author: Alice (BreganIM) Date: Sun Mar 9 20:22:02 2025 +0300 git: добавлен .gitignore commit e5276e73774c0e41eac27f579d4797718b1dce90 Author: Alice (BreganIM) Date: Sun Mar 9 20:10:08 2025 +0300 code: добавлен вывод разности A и B commit 3f4c347d3b560a0dbbad77845f4040315ea3e13b Author: Alice (BreganIM) Date: Sun Mar 9 20:09:16 2025 +0300 code: добавлен вывод суммы A и B brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --stat commit 8fbf1f234779ac84b77bf597718cfaa232827d7a (HEAD -> main) Author: Alice (BreganIM) Date: Sun Mar 9 20:24:06 2025 +0300 git: добавлен еще один доп игнор vs .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 571ebcf52f95830c9ba8a519f7daa8f85cddc26f Author: Alice (BreganIM) Date: Sun Mar 9 20:22:02 2025 +0300 git: добавлен .gitignore .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) commit e5276e73774c0e41eac27f579d4797718b1dce90 Author: Alice (BreganIM) Date: Sun Mar 9 20:10:08 2025 +0300 code: добавлен вывод разности A и B brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --decorate 8fbf1f2 (HEAD -> main) git: добавлен еще один доп игнор vs 571ebcf git: добавлен .gitignore e5276e7 code: добавлен вывод разности A и B 3f4c347 code: добавлен вывод суммы A и B ea3c5c6 code: добавлен запрос A и B 0ea2348 build: добавлен файл проекта 186259e code: заготовка программы brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 8fbf1f2 (HEAD -> main) git: добавлен еще один доп игнор vs * 571ebcf git: добавлен .gitignore * e5276e7 code: добавлен вывод разности A и B * 3f4c347 code: добавлен вывод суммы A и B * ea3c5c6 code: добавлен запрос A и B * 0ea2348 build: добавлен файл проекта * 186259e code: заготовка программы ------------------------------------------------------------------------------------------------ Отчет: в git log --stat для последнего коммита показывает: commit 8fbf1f234779ac84b77bf597718cfaa232827d7a (HEAD -> main) Author: Alice (BreganIM) Date: Sun Mar 9 20:24:06 2025 +0300 git: добавлен еще один доп игнор vs .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Разбор содержимого: 1) commit 8fbf1f234779ac84b77bf597718cfaa232827d7a Это уникальный идентификатор (хеш) коммита. Он позволяет однозначно ссылаться на этот коммит в истории. 2) (HEAD -> main) -HEAD указывает на текущий коммит, в котором находится рабочая копия. -main означает, что это основная ветка, и данный коммит является последним в ней. 3)Author: Alice (BreganIM) BreganIM@mpei.ru Автор коммита и его email. 4)Date: Sun Mar 9 20:24:06 2025 +0300 Время создания коммита (локальное время пользователя). 5)git: добавлен еще один доп игнор vs Краткое описание внесенных изменений. 6).gitignore | 3 ++- В этом коммите изменен только один файл – .gitignore. 7)1 file changed, 2 insertions(+), 1 deletion(-) -1 file changed – изменен один файл (.gitignore). -2 insertions(+) – добавлены две новые строки. -1 deletion(-) – удалена одна строка. ------------------------------------------------------------------------------------------------ brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --grep "build" commit 0ea2348681447e98d09dd77e27c3a31a7cb1ce69 Author: Alice (BreganIM) Date: Sun Mar 9 19:56:04 2025 +0300 build: добавлен файл проекта brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log -- project.cpp commit e5276e73774c0e41eac27f579d4797718b1dce90 Author: Alice (BreganIM) Date: Sun Mar 9 20:10:08 2025 +0300 code: добавлен вывод разности A и B commit 3f4c347d3b560a0dbbad77845f4040315ea3e13b Author: Alice (BreganIM) Date: Sun Mar 9 20:09:16 2025 +0300 code: добавлен вывод суммы A и B commit ea3c5c660d08b1de1ce79a65c0d5a3ef98990453 Author: Alice (BreganIM) Date: Sun Mar 9 20:02:24 2025 +0300 code: добавлен запрос A и B commit 186259e9b1d023c5ef5be50e56a788d0288ba60b Author: Alice (BreganIM) Date: Sun Mar 9 19:55:04 2025 +0300 code: заготовка программы 10. Просмотр коммитов brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git show HEAD~1 commit 571ebcf52f95830c9ba8a519f7daa8f85cddc26f Author: Alice (BreganIM) Date: Sun Mar 9 20:22:02 2025 +0300 git: добавлен .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..843c57c --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/bin/ +/obj/ +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates \ No newline at end of file 11. Просмотр изменений brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git diff diff --git a/project.cpp b/project.cpp index ff9849a..4e47771 100644 --- a/project.cpp +++ b/project.cpp @@ -8,7 +8,8 @@ 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'; } ------------------------------------------------------------------------------------------------ Отчет: Пояснение компонентов: 1)diff --git a/project.cpp b/project.cpp — изменения в файле project.cpp. 2)index ff9849a..4e47771 100644 — уникальные идентификаторы старой и новой версии файла. 3)--- a/project.cpp / +++ b/project.cpp — обозначение старой и новой версии файла. 4)@@ -8,7 +8,8 @@ int main() — изменения начинаются с 8-й строки, количество строк изменилось с 7 до 8. 5)- (красная строка) показывает удаленную строку. 6)+ (зеленая строка) показывает новую добавленную строку. ------------------------------------------------------------------------------------------------ brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git diff HEAD~2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1f8ac8e --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +/bin/ +/obj/ +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates +.vs/ \ No newline at end of file diff --git a/project.cpp b/project.cpp index ff9849a..4e47771 100644 --- a/project.cpp +++ b/project.cpp @@ -8,7 +8,8 @@ int main() int a, b; cin >> a >> b; cout << "A + B = " << a + b << '\n' brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --decorate 8fbf1f2 (HEAD -> main) git: добавлен еще один доп игнор vs 571ebcf git: добавлен .gitignore e5276e7 code: добавлен вывод разности A и B 3f4c347 code: добавлен вывод суммы A и B ea3c5c6 code: добавлен запрос A и B 0ea2348 build: добавлен файл проекта 186259e code: заготовка программы brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git diff HEAD~2 HEAD~6 diff --git a/project.cpp b/project.cpp index ff9849a..a60f2ae 100644 --- a/project.cpp +++ b/project.cpp @@ -1,14 +1,20 @@ - +// project.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчиивается выполнение программы. +// #include -using namespace std; + int main() { - cout << "Enter A and B: "; - int a, b; - cin >> a >> b; - cout << "A + B = " << a + b << '\n' - << "A - B = " << a - b << '\n'; - + std::cout << "Hello World!\n"; } 12. Откат изменений brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add project.cpp brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m "Добавлен вывод произведения чисел" [main cc98020] Добавлен вывод произведения чисел 1 file changed, 2 insertions(+), 1 deletion(-) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git reset --hard HEAD~1 HEAD is now at 8fbf1f2 git: добавлен еще один доп игнор vs brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git checkout HEAD -- project.cpp 13. Обмен кодом через удаленное хранилище brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ ssh-keygen Generating public/private ed25519 key pair. Enter file in which to save the key (/c/Users/brega/.ssh/id_ed25519): Created directory '/c/Users/brega/.ssh'. Enter passphrase for "/c/Users/brega/.ssh/id_ed25519" (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/brega/.ssh/id_ed25519 Your public key has been saved in /c/Users/brega/.ssh/id_ed25519.pub The key fingerprint is: SHA256:Q4FMNk3TVfmcgK5EjY/v31oSEspiT63IzH1tpSzezb8 brega@Ranny The key's randomart image is: +--[ED25519 256]--+ | o+++.o.o... | | .o..=.o .. | | o +. .o.| | ..ooo. .o| | oS+oo . . | | = *o..+ + | | = +.o * . | | o.+ * | | ..+.E+| +----[SHA256]-----+ brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ eval $(ssh-agent -s) Agent pid 1155 brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ ssh-add Enter passphrase for /c/Users/brega/.ssh/id_ed25519: Identity added: /c/Users/brega/.ssh/id_ed25519 (brega@Ranny) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ cat ~/.ssh/id_ed25519.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF/j7ZoWcAPy7kNfJG16sd71/WQ04DLjXoUW4rzEW5kV brega@Ranny 14. Отправка проекта на сервер brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git remote add origin git@uit.mpei.ru:BreganIM/cs-lab02.git brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git push -u origin main The authenticity of host 'uit.mpei.ru (193.233.68.149)' can't be established. ED25519 key fingerprint is SHA256:Q5w0UKEzQKA3J6NyMtjwCLvtAykoxdugIXjx6NwU4NA. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'uit.mpei.ru' (ED25519) to the list of known hosts. Enumerating objects: 21, done. Counting objects: 100% (21/21), done. Delta compression using up to 12 threads Compressing objects: 100% (20/20), done. Writing objects: 100% (21/21), 3.36 KiB | 1.12 MiB/s, done. Total 21 (delta 3), reused 0 (delta 0), pack-reused 0 (from 0) remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:BreganIM/cs-lab02.git * [new branch] main -> main branch 'main' set up to track 'origin/main'. 15.Получение проекта с сервера brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob $ git clone http://uit.mpei.ru/git/BreganIM/cs-lab02.git project Cloning into 'project'... remote: Enumerating objects: 21, done. remote: Counting objects: 100% (21/21), done. remote: Compressing objects: 100% (20/20), done. remote: Total 21 (delta 3), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (21/21), done. Resolving deltas: 100% (3/3), done. brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob $ cd project brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git config user.name 'Bob (BreganIM)' brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git config user.email 'BreganIM@mpei.ru' 16.Совместная работа над проектом без конфликтов правок brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git add project.cpp brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git commit -m 'code: добавлен вывод произведения A и B' [main 4037858] code: добавлен вывод произведения A и B 1 file changed, 2 insertions(+), 1 deletion(-) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git log commit 4037858ea99714580a993afc9348870b0d4fc025 (HEAD -> main) Author: Bob (BreganIM) Date: Sun Mar 9 21:18:42 2025 +0300 code: добавлен вывод произведения A и B commit 8fbf1f234779ac84b77bf597718cfaa232827d7a (origin/main, origin/HEAD) Author: Alice (BreganIM) Date: Sun Mar 9 20:24:06 2025 +0300 git: добавлен еще один доп игнор vs commit 571ebcf52f95830c9ba8a519f7daa8f85cddc26f Author: Alice (BreganIM) Date: Sun Mar 9 20:22:02 2025 +0300 git: добавлен .gitignore commit e5276e73774c0e41eac27f579d4797718b1dce90 Author: Alice (BreganIM) Date: Sun Mar 9 20:10:08 2025 +0300 code: добавлен вывод разности A и B brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 12 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 424 bytes | 424.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/BreganIM/cs-lab02.git 8fbf1f2..4037858 main -> main brega@Ranny 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), 404 bytes | 134.00 KiB/s, done. From uit.mpei.ru:BreganIM/cs-lab02 8fbf1f2..4037858 main -> origin/main brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 4037858 (origin/main, origin/HEAD) code: добавлен вывод произведения A и B * 8fbf1f2 (HEAD -> main) git: добавлен еще один доп игнор vs * 571ebcf git: добавлен .gitignore * e5276e7 code: добавлен вывод разности A и B * 3f4c347 code: добавлен вывод суммы A и B * ea3c5c6 code: добавлен запрос A и B * 0ea2348 build: добавлен файл проекта * 186259e code: заготовка программы brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git pull --ff-only Updating 8fbf1f2..4037858 Fast-forward project.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add project.cpp brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m 'code: добавлен вывод деления A и B' [main eb8cebb] code: добавлен вывод деления A и B 1 file changed, 2 insertions(+), 1 deletion(-) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 12 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 413 bytes | 413.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 uit.mpei.ru:BreganIM/cs-lab02.git 4037858..eb8cebb main -> main brega@Ranny 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), 393 bytes | 56.00 KiB/s, done. From http://uit.mpei.ru/git/BreganIM/cs-lab02 4037858..eb8cebb main -> origin/main brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git log --oneline --decorate --all --graph * eb8cebb (origin/main, origin/HEAD) code: добавлен вывод деления A и B * 4037858 (HEAD -> main) code: добавлен вывод произведения A и B * 8fbf1f2 git: добавлен еще один доп игнор vs * 571ebcf git: добавлен .gitignore * e5276e7 code: добавлен вывод разности A и B * 3f4c347 code: добавлен вывод суммы A и B * ea3c5c6 code: добавлен запрос A и B * 0ea2348 build: добавлен файл проекта * 186259e code: заготовка программы brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git pull --ff-only Updating 4037858..eb8cebb Fast-forward project.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 17.Разрешение конфликтов правок при совместной работе brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add project.cpp brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m "code:Добавлена печать максимума" [main ad29084] code:Добавлена печать максимума 1 file changed, 8 insertions(+) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git push Enter passphrase for key '/c/Users/brega/.ssh/id_ed25519': Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 12 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 467 bytes | 467.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 uit.mpei.ru:BreganIM/cs-lab02.git eb8cebb..ad29084 main -> main brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git add project.cpp brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git commit -m "code:Добавлена печать минимума" [main a00b5db] code:Добавлена печать минимума 1 file changed, 8 insertions(+) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git push To http://uit.mpei.ru/git/BreganIM/cs-lab02.git ! [rejected] main -> main (fetch first) error: failed to push some refs to 'http://uit.mpei.ru/git/BreganIM/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. brega@Ranny 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), 447 bytes | 55.00 KiB/s, done. From http://uit.mpei.ru/git/BreganIM/cs-lab02 eb8cebb..ad29084 main -> origin/main brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git log --oneline --decorate --all --graph * a00b5db (HEAD -> main) code:Добавлена печать минимума | * ad29084 (origin/main, origin/HEAD) code:Добавлена печать максимума |/ * eb8cebb code: добавлен вывод деления A и B * 4037858 code: добавлен вывод произведения A и B * 8fbf1f2 git: добавлен еще один доп игнор vs * e5276e7 code: добавлен вывод разности A и B * 3f4c347 code: добавлен вывод суммы A и B * ea3c5c6 code: добавлен запрос A и B * 0ea2348 build: добавлен файл проекта * 186259e code: заготовка программы brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main) $ git rebase origin/main Auto-merging project.cpp CONFLICT (content): Merge conflict in project.cpp error: could not apply a00b5db... 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 set advice.mergeConflict false" Could not apply a00b5db... code:Добавлена печать минимума [detached HEAD cf7773e] code: добавлена печать минимума 1 file changed, 11 insertions(+) Successfully rebased and updated refs/heads/main. ------------------------------------------------------------------------------------------------ Отчет: Анализ текущего состояния: Имеется «разветвлённая» история: Локальная ветка завершена коммитом с печатью минимума (теперь - cf7773e, до ребейза - a00b5db). Удалённая ветка содержит коммит с печатью максимума (ad29084). Линейная история объединяет оба направления, показывая, что изменения происходили параллельно. Ребейз: Команда git rebase origin/main попыталась переместить локальные изменения на базу удалённой ветки. Во время ребейза возник конфликт в файле project.cpp на коммите «Добавлена печать минимума». После разрешения конфликта ребейз завершился успешно, и итоговый коммит получил новый хэш cf7773e. ------------------------------------------------------------------------------------------------ <> 18.Использование веток brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git branch double brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git checkout double Switched to branch 'double' brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double) $ git add project.cpp brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double) $ git commit -m "code: double" [double b6e4380] code: double 1 file changed, 1 insertion(+), 1 deletion(-) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double) $ git checkout main Switched to branch 'main' Your branch is behind 'origin/main' by 1 commit, and can be fast-forwarded. (use "git pull" to update your local branch) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git pull --ff-only Enter passphrase for key '/c/Users/brega/.ssh/id_ed25519': Updating ad29084..cf7773e Fast-forward project.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --all b6e4380 (double) code: double cf7773e (HEAD -> main, origin/main, origin/HEAD) code:Добавлена печать минимума ad29084 code:Добавлена печать максимума eb8cebb code: добавлен вывод деления A и B 4037858 code: добавлен вывод произведения A и B 8fbf1f2 git: добавлен еще один доп игнор vs 571ebcf git: добавлен .gitignore e5276e7 code: добавлен вывод разности A и B 3f4c347 code: добавлен вывод суммы A и B ea3c5c6 code: добавлен запрос A и B brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git merge double Auto-merging project.cpp Merge made by the 'ort' strategy. project.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --all --graph * 55f4fbd (HEAD -> main) Merge branch 'double' |\ | * b6e4380 (double) code: double * | cf7773e (origin/main, origin/HEAD) code:Добавлена печать минимума |/ * ad29084 code:Добавлена печать максимума * eb8cebb code: добавлен вывод деления A и B * 4037858 code: добавлен вывод произведения A и B * 8fbf1f2 git: добавлен еще один доп игнор vs * 571ebcf git: добавлен .gitignore * e5276e7 code: добавлен вывод разности A и B * 3f4c347 code: добавлен вывод суммы A и B * ea3c5c6 code: добавлен запрос A и B * 0ea2348 build: добавлен файл проекта * 186259e code: заготовка программы brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git push Enter passphrase for key '/c/Users/brega/.ssh/id_ed25519': Enumerating objects: 10, done. Counting objects: 100% (10/10), done. Delta compression using up to 12 threads Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 705 bytes | 705.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 uit.mpei.ru:BreganIM/cs-lab02.git cf7773e..55f4fbd main -> main