Отчет по лабораторной работе № 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 ..." 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 ..." to unstage) new file: main.cpp Untracked files: (use "git add ..." 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 ..." 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 ..." 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/ 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 ..." 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 ..." 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 ..." 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 ..." 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) Date: Sun Apr 6 15:00:44 2025 +0300 git: игнорирование файлов commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1 Author: Alice (TarasovEE) Date: Sun Apr 6 10:39:48 2025 +0300 code: добавлен вывод разности a и b commit 631ff69bda317d762f70971303beff1e2b75c1e9 Author: Alice (TarasovEE) Date: Sun Apr 6 10:34:35 2025 +0300 code: добавлен вывод суммы a и b commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7 Author: Alice (TarasovEE) 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) Date: Sun Apr 6 15:00:44 2025 +0300 git: игнорирование файлов .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1 Author: Alice (TarasovEE) 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) 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) Date: Sun Apr 6 10:39:48 2025 +0300 code: добавлен вывод разности a и b commit 631ff69bda317d762f70971303beff1e2b75c1e9 Author: Alice (TarasovEE) Date: Sun Apr 6 10:34:35 2025 +0300 code: добавлен вывод суммы a и b commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7 Author: Alice (TarasovEE) Date: Sun Apr 6 10:25:02 2025 +0300 code: добавлен ввод и вывод a и b commit 41192cddf652cbda07756d971ae8cac2bb021bb5 Author: Alice (TarasovEE) 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) Date: Sun Apr 6 10:39:48 2025 +0300 code: добавлен вывод разности a и b commit 631ff69bda317d762f70971303beff1e2b75c1e9 Author: Alice (TarasovEE) Date: Sun Apr 6 10:34:35 2025 +0300 code: добавлен вывод суммы a и b commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7 Author: Alice (TarasovEE) Date: Sun Apr 6 10:25:02 2025 +0300 code: добавлен ввод и вывод a и b commit 41192cddf652cbda07756d971ae8cac2bb021bb5 Author: Alice (TarasovEE) 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) 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) 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) Date: Sun Apr 6 15:00:44 2025 +0300 git: игнорирование файлов .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1 Author: Alice (TarasovEE) 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 ", 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: заготовка программы Всё сошлось.