Отчет по лабораторной работе № 2 "Система контроля версий Git" Выполнил: Тарасов Е. Е. Группа: А-03-24 Проверил: Примечание: работа выполнялась на Windows. 1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ 2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ ls 3. Создал каталоги Алисы и Боба, создал каталог "project", изучил команду "cd" в процессе: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ mkdir alice jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ mkdir bob jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ cd alice jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice $ mkdir project jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice $ cd project jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project $ cd .. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice $ cd project 4. Инициализировал репозитарий и поменял название ветки с master на main: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project $ git init Initialized empty Git repository in C:/Users/jonny-junior/Desktop/lab02/alice/pr oject/.git/ jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (master) $ git branch -m main 4.1. Посмотрел что находится в каталоге .git: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ ls -A .git/ 4.2. Настроил репозитарий Алисы, чтобы коммиты были от её имени, а также указал свои данные(имя и почта): jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git config user.name 'Alice (TarasovEE)' jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git config user.email 'TarasovYY@mpei.ru' 5. Создал проекты в CodeBlocks и коммиты, проверил каталог .git/ и другие файлы в папке project: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ ls -A .git/ bin/ main.cpp obj/ project.cbp 6. Занёс файлы под контроль версий: 6.1 Проверил состояние рабочей версии: $ git status On branch main No commits yet Untracked files: (use "git add <file>..." 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) Все файлы в папке project не отслеживаются Git. 6.2. Занёс файл под Git: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp 6.3. Проверил состояние рабочей копии: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git status On branch main No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: main.cpp Untracked files: (use "git add <file>..." to include in what will be committed) bin/ obj/ project.cbp Среди коммитов начал отслеживаться файл main.cpp все остальные файлы, по-прежнему, не отслеживаются. 6.4. Вывел сообщение для заднного коммита: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'code: заготовка программы' [main (root-commit) 41192cd] code: заготовка программы 1 file changed, 9 insertions(+) create mode 100644 main.cpp 7. Составил сообщение к коммитам: 7.1. Занёс файл project.cbp под Git и составил к нему сообщение: jonny-junior@DESKTOP-HPH6RBV 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 touch es it Windows вывел сообщение о том, Git хранит этот файл в изменённом виде. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'build: добавлен файл проекта' [main 0f9ebab] build: добавлен файл проекта 1 file changed, 40 insertions(+) create mode 100644 project.cbp 7.2. Проверил состояние рабочей копии: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git status On branch main Untracked files: (use "git add <file>..." to include in what will be committed) bin/ obj/ nothing added to commit but untracked files present (use "git add" to track) На данный момент Git не отслеживает только 2 папки: bin/ и obj/. 8. Создал коммиты с изменениями: 8.1. Проверил состояние репозитория после изменения файла: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git status On branch main Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: main.cpp Untracked files: (use "git add <file>..." to include in what will be committed) bin/ obj/ project.depend project.layout no changes added to commit (use "git add" and/or "git commit -a") Git вывел, что файл main.cpp был изменён и нужно закоммитить изменения. 8.2. Закоммитил изменения в файле тремя способами: 8.2.1. 1 способ: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: добавлен ввод и вывод a и b" [main 22c9b94] code: добавлен ввод и вывод a и b 1 file changed, 3 insertions(+), 2 deletions(-) jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: добавлен вывод суммы a и b" [main 631ff69] code: добавлен вывод суммы a и b 1 file changed, 1 insertion(+) 8.2.2. 2 способ: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git add -u jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: добавлен вывод разности a и b" [main 0b83a40] code: добавлен вывод разности a и b 1 file changed, 1 insertion(+) 8.2.3. 3 способ: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -a -m "code: добавлен вывод разности a и b" On branch main Untracked files: (use "git add <file>..." to include in what will be committed) bin/ obj/ project.depend project.layout nothing added to commit but untracked files present (use "git add" to track) Во время использования 3 способа я не вносил никаких изменений, так как это не трбовалось в лабораторной. 9. Игнорирование файлов: 9.1. Проверил состояние репозитория после создания файла .gitignore и внесения туда папки bin: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git status On branch main Untracked files: (use "git add <file>..." to include in what will be committed) .gitignore obj/ project.depend project.layout nothing added to commit but untracked files present (use "git add" to track) Файл bin отсутствует в списке неотслоеживаемых, вместо него появился файл gitignore. 9.2. Проверил состояние репозитоия после внесения в gitignore файлов obj и *.layout: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git status On branch main Untracked files: (use "git add <file>..." to include in what will be committed) .gitignore project.depend nothing added to commit but untracked files present (use "git add" to track) Остались только два файла. 9.3. Создал коммит с gitignore и проверил репозитарий после этого: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git add .gitignore jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'git: игнорирование файлов' [main 88be7b4] git: игнорирование файлов 1 file changed, 3 insertions(+) create mode 100644 .gitignore jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git status On branch main Untracked files: (use "git add <file>..." to include in what will be committed) project.depend nothing added to commit but untracked files present (use "git add" to track) 10. Просмотрел историю: 10.1. Открыл журнал репозитария: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git log commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (HEAD -> main) Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 15:00:44 2025 +0300 git: игнорирование файлов commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:39:48 2025 +0300 code: добавлен вывод разности a и b commit 631ff69bda317d762f70971303beff1e2b75c1e9 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:34:35 2025 +0300 code: добавлен вывод суммы a и b commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:25:02 2025 +0300 code: добавлен ввод и вывод a и b 10.2. Посмотрел файлы, изменённые в коммитах: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --stat commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (HEAD -> main) Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 15:00:44 2025 +0300 git: игнорирование файлов .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:39:48 2025 +0300 code: добавлен вывод разности a и b main.cpp | 1 + 1 file changed, 1 insertion(+) commit 631ff69bda317d762f70971303beff1e2b75c1e9 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:34:35 2025 +0300 code: добавлен вывод суммы a и b 10.3. Посмотрел коммиты компактно: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate 88be7b4 (HEAD -> main) git: игнорирование файлов 0b83a40 code: добавлен вывод разности a и b 631ff69 code: добавлен вывод суммы a и b 22c9b94 code: добавлен ввод и вывод a и b 0f9ebab build: добавлен файл проекта 41192cd code: заготовка программы 10.4. Посмотрел коммиты для всех веток: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 88be7b4 (HEAD -> main) git: игнорирование файлов * 0b83a40 code: добавлен вывод разности a и b * 631ff69 code: добавлен вывод суммы a и b * 22c9b94 code: добавлен ввод и вывод a и b * 0f9ebab build: добавлен файл проекта * 41192cd code: заготовка программы 10.5. Посмотрел коммиты, связанные с main.cpp: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git log -- main.cpp commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:39:48 2025 +0300 code: добавлен вывод разности a и b commit 631ff69bda317d762f70971303beff1e2b75c1e9 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:34:35 2025 +0300 code: добавлен вывод суммы a и b commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:25:02 2025 +0300 code: добавлен ввод и вывод a и b commit 41192cddf652cbda07756d971ae8cac2bb021bb5 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sat Apr 5 18:01:31 2025 +0300 code: заготовка программы 10.6. Посмотрел коммиты с "code" в сообщении: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --grep "code:" commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:39:48 2025 +0300 code: добавлен вывод разности a и b commit 631ff69bda317d762f70971303beff1e2b75c1e9 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:34:35 2025 +0300 code: добавлен вывод суммы a и b commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:25:02 2025 +0300 code: добавлен ввод и вывод a и b commit 41192cddf652cbda07756d971ae8cac2bb021bb5 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sat Apr 5 18:01:31 2025 +0300 code: заготовка программы 10.6. Посмторел поледний коммит: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git show HEAD commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (HEAD -> main) Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 15:00:44 2025 +0300 git: игнорирование файлов diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d85abef --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/bin +/obj +/*.layout 10.7. Внёс изменения в последний коммит, и посмторел их: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff diff --git a/main.cpp b/main.cpp index e84d77b..8d75565 100644 --- a/main.cpp +++ b/main.cpp @@ -9,4 +9,5 @@ int main() cin >> a >> b; cout << "A + B = " << a + b << '\n'; cout << "A - B = " << a - b << '\n'; + cout << "A * B = " << a * b << '\n'; } 10.8. Посмотрел изменения между первым и последним коммитом: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff HEAD~5 HEAD diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d85abef --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/bin +/obj +/*.layout diff --git a/main.cpp b/main.cpp index b4392ec..e84d77b 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'; + cout << "A - B = " << a - b << '\n'; } 10.9. Закоммитил вывод произведения: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: добавлен вывод суммы a и b" [main a3b52ea] code: добавлен вывод суммы a и b 1 file changed, 1 insertion(+) 10.10. Откатил изменения и потом вернул их: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git reset --hard HEAD~1 HEAD is now at 88be7b4 git: игнорирование файлов jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git checkout HEAD -- main.cpp 11. Отпарвка проекта на сервер: 11.1. Создал ключ: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ ssh-keygen Generating public/private ed25519 key pair. Enter file in which to save the key (/c/Users/jonny-junior/.ssh/id_ed25519): Enter passphrase for "/c/Users/jonny-junior/.ssh/id_ed25519" (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/jonny-junior/.ssh/id_ed25519 Your public key has been saved in /c/Users/jonny-junior/.ssh/id_ed25519.pub The key fingerprint is: SHA256:Wf67BiCbAaN+EPe47aY0c/pRgFDn39cP9UIcHG093mY jonny-junior@DESKTOP-HPH6RBV The key's randomart image is: +--[ED25519 256]--+ | ... . .oo.| | ..++ ..o+| | +.=o . +.+| | o . +o.= o oE| | . . o =S.o . +o.| | . o +. .o + | | .+.o .. .| | . =o. .. | | o+. .o. | +----[SHA256]-----+ 11.2. Запустил агент и загрузил ключ: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ eval $(ssh-agent -s) Agent pid 2004 jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ ssh-add Enter passphrase for /c/Users/jonny-junior/.ssh/id_ed25519: Identity added: /c/Users/jonny-junior/.ssh/id_ed25519 (jonny-junior@DESKTOP-HPH6RBV) 11.3. Отобразил для проверки открытый ключ: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ cat ~/.ssh/id_ed25519.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEhmtVfaNrRl2RQcfj1yfK9qV4fuIhfpyxzQn+tE3P6N jonny-junior@DESKTOP-HPH6RBV 11.4. Отправил проект на сервер: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git remote add origin git@uit.mpei.ru:TarasovYY/cs-lab02.git jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/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: 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.35 KiB | 401.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 uit.mpei.ru:TarasovYY/cs-lab02.git * [new branch] main -> main branch 'main' set up to track 'origin/main'. 11.5. Получил адрес и каталог: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git remote -v origin git@uit.mpei.ru:TarasovYY/cs-lab02.git (fetch) origin git@uit.mpei.ru:TarasovYY/cs-lab02.git (push) Необходимо было получить их, так как заранее я их не знал. 11.6. Перешёл в каталог Боба и получил проект с сервера: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ cd .. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice $ cd .. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ cd bob jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob $ git clone git@uit.mpei.ru:TarasovYY/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. 11.7. Перешёл в каталог project и настроил Git Боба: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob $ cd project jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git config user.name 'Bob (TarasovEE)' jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git config user.email 'TarasovYY@mpei.ru' 11.8. От лица Боба добавил изменения в файл(вывод произведения) и закоммитил их: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git add main.cpp jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git commit -m "code: добавлен вывод произведения a и b" [main 130ff05] code: добавлен вывод произведения a и b 1 file changed, 1 insertion(+) 11.9. Прверил, что изменения были именно от лица Боба: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --stat commit 130ff0511696137c69cd5b57ada65544f31c8651 (HEAD -> main) Author: Bob (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 13 21:09:39 2025 +0300 code: добавлен вывод произведения a и b main.cpp | 1 + 1 file changed, 1 insertion(+) commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (origin/main, origin/HEAD) Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 15:00:44 2025 +0300 git: игнорирование файлов .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1 Author: Alice (TarasovEE) <TarasovYY@mpei.ru> Date: Sun Apr 6 10:39:48 2025 +0300 code: добавлен вывод разности a и b 12. Совместная работа над проектом без конфликтов и правок: 12.1. Отправил коммит Боба на сервер: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/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), 435 bytes | 435.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:TarasovYY/cs-lab02.git 88be7b4..130ff05 main -> main 12.2. Перешёл в каталог Алисы и загрузил изменения: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ cd .. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob $ cd .. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ cd alice jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice $ cd project jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/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), 415 bytes | 6.00 KiB/s, done. From uit.mpei.ru:TarasovYY/cs-lab02 88be7b4..130ff05 main -> origin/main 12.3. Проверил на соответствие рабочие копии Алисы и Боба: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 130ff05 (origin/main, origin/HEAD) code: добавлен вывод произведения a и b * 88be7b4 (HEAD -> main) git: игнорирование файлов * 0b83a40 code: добавлен вывод разности a и b * 631ff69 code: добавлен вывод суммы a и b * 22c9b94 code: добавлен ввод и вывод a и b * 0f9ebab build: добавлен файл проекта * 41192cd code: заготовка программы Ветка main отстаёт от ветки origin/main на один коммит. 12.4. Продвинул ветку на один коммит: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git pull --ff-only Updating 88be7b4..130ff05 Fast-forward main.cpp | 1 + 1 file changed, 1 insertion(+) Ещё раз проверил истрию веток: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 130ff05 (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод пр оизведения a и b * 88be7b4 git: игнорирование файлов * 0b83a40 code: добавлен вывод разности a и b * 631ff69 code: добавлен вывод суммы a и b * 22c9b94 code: добавлен ввод и вывод a и b * 0f9ebab build: добавлен файл проекта * 41192cd code: заготовка программы Теперь ветка не отстаёт. 12.5. Добавил изменения(вывод деления) и закоммитил их: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: добавлен вывод деления a и b" [main 1a0469d] code: добавлен вывод деления a и b 1 file changed, 1 insertion(+) 12.6. Снова проверил историю ветки: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 1a0469d (HEAD -> main) code: добавлен вывод деления a и b * 130ff05 (origin/main, origin/HEAD) code: добавлен вывод произведения a и b * 88be7b4 git: игнорирование файлов * 0b83a40 code: добавлен вывод разности a и b * 631ff69 code: добавлен вывод суммы a и b * 22c9b94 code: добавлен ввод и вывод a и b * 0f9ebab build: добавлен файл проекта * 41192cd code: заготовка программы origin/main отстаёт от main. 12.7. Загрузил изменеия на сервер: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/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), 421 bytes | 421.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:TarasovYY/cs-lab02.git 130ff05..1a0469d main -> main 12.8. Зашёл в каталог Боба и загрузил изменеия с сервера: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ cd .. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice $ cd .. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ cd bob jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob $ cd project jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/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), 401 bytes | 3.00 KiB/s, done. From uit.mpei.ru:TarasovYY/cs-lab02 130ff05..1a0469d main -> origin/main 12.9. Проверил историю веток: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --oneline --decorate --all --graph * 1a0469d (origin/main, origin/HEAD) code: добавлен вывод деления a и b * 130ff05 (HEAD -> main) code: добавлен вывод произведения a и b * 88be7b4 git: игнорирование файлов * 0b83a40 code: добавлен вывод разности a и b * 631ff69 code: добавлен вывод суммы a и b * 22c9b94 code: добавлен ввод и вывод a и b * 0f9ebab build: добавлен файл проекта * 41192cd code: заготовка программы Ветка main отстаёт от ветки origin/main. 12.10. Продвинул ветку и проверил историю: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git pull --ff-only Updating 130ff05..1a0469d Fast-forward main.cpp | 1 + 1 file changed, 1 insertion(+) jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --oneline --decorate --all --graph * 1a0469d (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод деления a и b * 130ff05 code: добавлен вывод произведения a и b * 88be7b4 git: игнорирование файлов * 0b83a40 code: добавлен вывод разности a и b * 631ff69 code: добавлен вывод суммы a и b * 22c9b94 code: добавлен ввод и вывод a и b * 0f9ebab build: добавлен файл проекта * 41192cd code: заготовка программы Теперь положения веток совпадают. 13. Разрешение конфликтов правок при совместной работе: 13.1. Перешёл в каталог Алисы и добавил вывод максимума и отправил его на сервер: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ cd alice jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice $ cd project jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: добавлен вывод максимума" [main 9e7f23c] code: добавлен вывод максимума 1 file changed, 4 insertions(+) jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git push Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519': 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), 447 bytes | 223.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:TarasovYY/cs-lab02.git 1a0469d..9e7f23c main -> main 13.2. Добавил переход на следующую строку: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ cd alice jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice $ cd project jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: добавлен вывод максимума и переход на следущую строку" [main febb8eb] code: добавлен вывод максимума и переход на следущую строку 1 file changed, 2 insertions(+), 2 deletions(-) jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git push Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519': 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), 446 bytes | 446.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:TarasovYY/cs-lab02.git 9e7f23c..febb8eb main -> main 13.3. Перешёл в каталог Боба и добавил вывод минимума, после чего отправил его на сервер: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ cd .. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice $ cd .. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ cd bob jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob $ cd project jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git add main.cpp jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git commit -m "code: добавлен вывод минимума" [main f992b5a] code: добавлен вывод минимума 1 file changed, 4 insertions(+) jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git push Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519': To uit.mpei.ru:TarasovYY/cs-lab02.git ! [rejected] main -> main (fetch first) error: failed to push some refs to 'uit.mpei.ru:TarasovYY/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. Из-за расхождения версий Алисы и Боба, это не удалось сделать. 13.3. От лица Боба загрузил коммиты: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git fetch Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519': remote: Enumerating objects: 8, done. remote: Counting objects: 100% (8/8), done. remote: Compressing objects: 100% (6/6), done. remote: Total 6 (delta 2), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (6/6), 818 bytes | 2.00 KiB/s, done. From uit.mpei.ru:TarasovYY/cs-lab02 1a0469d..febb8eb main -> origin/main 13.4. Попытался перенести коммит Боба вверх: jonny-junior@DESKTOP-HPH6RBV 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 f992b5a... code: добавлен вывод минимума hint: Resolve all conflicts manually, mark them as resolved with hint: "git add/rm <conflicted_files>", 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 f992b5a... code: добавлен вывод минимума Не удалось это сделать, так как версия Боба расходится с версией Алисы: 13.5. Изменил код и закоммитил его, после чего продолжил перемещение: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git add main.cpp jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git commit -m "code: добавлен вывод минимума и максимума" [detached HEAD b17bfa6] code: добавлен вывод минимума и максимума 1 file changed, 4 insertions(+) jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1) $ git rebase --continue Successfully rebased and updated refs/heads/main. 13.6. отправил изменения на сервер: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git push Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519': 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), 434 bytes | 434.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:TarasovYY/cs-lab02.git febb8eb..b17bfa6 main -> main 13.7. Посмотрел историю веток: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --oneline --decorate --all --graph * b17bfa6 (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод минимума и максимума * febb8eb code: добавлен вывод максимума и переход на следущую строку * 9e7f23c code: добавлен вывод максимума * 1a0469d code: добавлен вывод деления a и b * 130ff05 code: добавлен вывод произведения a и b * 88be7b4 git: игнорирование файлов * 0b83a40 code: добавлен вывод разности a и b * 631ff69 code: добавлен вывод суммы a и b * 22c9b94 code: добавлен ввод и вывод a и b * 0f9ebab build: добавлен файл проекта * 41192cd code: заготовка программы 14. Оспользование веток: 14.1. Перешёл в каталог Алисы, добавил ветку double и переключился на неё: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main) $ cd .. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob $ cd .. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02 $ cd alice jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice $ cd project jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git branch double jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git checkout double Switched to branch 'double' 14.2. Закоммитил изменения целочисленного типа на вещественный: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (double) $ git add main.cpp jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (double) $ git commit -m "code: тип переменных изменён на вещественный" [double 58b7444] code: тип переменных изменён на вещественный 1 file changed, 1 insertion(+), 1 deletion(-) 14.3. Переключился на ветку main и проверил историю веток: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (double) $ git checkout main Switched to branch 'main' Your branch is up to date with 'origin/main'. jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 58b7444 (double) code: тип переменных изменён на вещественный * febb8eb (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод максимум а и переход на следущую строку * 9e7f23c code: добавлен вывод максимума * 1a0469d code: добавлен вывод деления a и b * 130ff05 code: добавлен вывод произведения a и b * 88be7b4 git: игнорирование файлов * 0b83a40 code: добавлен вывод разности a и b * 631ff69 code: добавлен вывод суммы a и b * 22c9b94 code: добавлен ввод и вывод a и b * 0f9ebab build: добавлен файл проекта * 41192cd code: заготовка программы Ветки расходятся. 14.4. Слил веткку double c main: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git merge double Updating febb8eb..58b7444 Fast-forward main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main|MERGING) $ git log --oneline --decorate --all --graph * 58b7444 (HEAD -> main, double) code: тип переменных изменён на вещественный | * b17bfa6 (origin/main, origin/HEAD) code: добавлен вывод минимума и максимума |/ * febb8eb code: добавлен вывод максимума и переход на следущую строку * 9e7f23c code: добавлен вывод максимума * 1a0469d code: добавлен вывод деления a и b * 130ff05 code: добавлен вывод произведения a и b * 88be7b4 git: игнорирование файлов * 0b83a40 code: добавлен вывод разности a и b * 631ff69 code: добавлен вывод суммы a и b * 22c9b94 code: добавлен ввод и вывод a и b * 0f9ebab build: добавлен файл проекта * 41192cd code: заготовка программы 14.5. Создал коммит и отправил его на сервер: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main|MERGING) $ git add main.cpp jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main|MERGING) $ git commit -m "#code: слияние веток" [main 7ff6a9d] #code: слияние веток jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git push Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519': 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), 778 bytes | 778.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:TarasovYY/cs-lab02.git b17bfa6..7ff6a9d main -> main 14.6. Проверил историю веток: jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 7ff6a9d (HEAD -> main, origin/main, origin/HEAD) #code: слияние веток |\ | * b17bfa6 code: добавлен вывод минимума и максимума * | 58b7444 (double) code: тип переменных изменён на вещественный |/ * febb8eb code: добавлен вывод максимума и переход на следущую строку * 9e7f23c code: добавлен вывод максимума * 1a0469d code: добавлен вывод деления a и b * 130ff05 code: добавлен вывод произведения a и b * 88be7b4 git: игнорирование файлов * 0b83a40 code: добавлен вывод разности a и b * 631ff69 code: добавлен вывод суммы a и b * 22c9b94 code: добавлен ввод и вывод a и b * 0f9ebab build: добавлен файл проекта * 41192cd code: заготовка программы Всё сошлось.