Отчет по лабораторной работе № 2 "Система контроля версий Git" Выполнил: Ефимова Л. А. Группа: А-03-23 Проверил: Козлюк Д. А. Примечание: работа выполнялась на Windows. 1. Создала на рабочем столе каталог lab02 и запустила в нем Git Bash, приглашение: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02 $ 2. Просмотрела файлы в рабочем каталоге можно командой "ls" --- пусто: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02 $ ls lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02 $ 3. Создала каталоги Алисы и Боба, создала католог "project", изучила команду "cd" в процессе: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02 $ mkdir alice lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02 $ mkdir bob lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02 $ cd bob lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob $ cd .. lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02 $ cd alice lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice $ mkdir project lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice $ ls project/ lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice $ cd project 4. Инциализировала репозитарий: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project $ git init Initialized empty Git repository in C:/Users/lyuda/Desktop/lab02/alice/project/.git/ lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (master) $ ls -A .git/ 5. Настроила репозитарий Алисы: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (master) $ git config user.name 'Alice (EfimovaLA)' lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (master) $ git config user.email 'YefimovaLA@mpei.ru' 6. Запустила Codeblocks создала проект в репозитарии Алисы: 7. Проверка статуса рабочей копии: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (master) $ git status On branch master No commits yet Untracked files: (use "git add ..." to include in what will be committed) bin/ main.cpp obj/ project.cbp nothing added to commit but untracked files present (use "git add" to track) On branch master - означает что мы находимся на ветке master No commits yet - коммитов еще не существует Untracked files: (use "git add ..." to include in what will be committed) bin/ main.cpp obj/ project.cbp Показывает какие файлы не находятся под контролем версий. Консоль выводит команду для добавления файлов и перечисляет файлы. 8. Начала отслеживать файлы main.cpp: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (master) $ git add main.cpp lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (master) $ 9. Проверка отслеживания файла: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (master) $ git status On branch master 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 lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (master) $ Мы видим что файл main.cpp теперь отслеживается. 10. коммит с файлом main.cpp: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (master) $ git commit -m 'code: заготовка программы' [master (root-commit) 24bf0b6] code: заготовка программы 1 file changed, 9 insertions(+) create mode 100644 main.cpp 11. переименовала ветку после создания коммита: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (master) $ git branch -m main 12. добавила файл project.cbp в отслеживание и сделала коммит с ним: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git add project.cbp warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'build: добавлен файл проекта' [main 1e2f2cd] build: добавлен файл проекта 1 file changed, 40 insertions(+) create mode 100644 project.cbp 13. Изменила тело функции main() на ввод чисел, проверила статус репозитария: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git status On branch main Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git restore ..." to discard changes in working directory) modified: main.cpp Untracked files: (use "git add ..." to include in what will be committed) bin/ obj/ no changes added to commit (use "git add" and/or "git commit -a") Мы видим, что файл main.cpp был изменен. Также предложено сделать коммит или отменить изменения в директории. 14. 1 способ коммита изменения: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'code: изменена функция main' [main 8943db9] code: изменена функция main 1 file changed, 3 insertions(+), 2 deletions(-) 15. Добавлен вывод сумммы. Применила второй способ коммита изменения: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git add -u lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'code: добавлен вывод суммы' [main b8dc6ec] code: добавлен вывод суммы 1 file changed, 1 insertion(+) 16. Добавлен вывод разности. Применила 3 способ коммита изменения: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -a -m 'code: добавлен вывод разности' [main 6292782] code: добавлен вывод разности 1 file changed, 2 insertions(+), 1 deletion(-) 17. Создала пустой файл в CodeBlocks и указала файлы для игнорирования. lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git status On branch main Untracked files: (use "git add ..." to include in what will be committed) .gitignore nothing added to commit but untracked files present (use "git add" to track) 18. Добавила .gitignore в отслеживаемые файлы и закоммитила изменения: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git add .gitignore lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'git: игнорирование файлов' [main d72791f] git: игнорирование файлов 1 file changed, 4 insertions(+) create mode 100644 .gitignore 19. 1 Способ просмотра изменений в коммитах: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git log commit 63c24a417c20934cc8403d4125488ec7efe36a74 (HEAD -> main) Author: Alice (EfimovaLA) Date: Tue Apr 9 19:27:33 2024 +0300 git: игнорирование файлов commit 6292782a16546643add744a3bf1546bff4d71a23 Author: Alice (EfimovaLA) Date: Tue Apr 9 19:07:15 2024 +0300 code: добавлен вывод разности commit b8dc6ec62aacb5145d19cfc767e9db29fa987087 Author: Alice (EfimovaLA) Date: Tue Apr 9 18:57:59 2024 +0300 code: добавлен вывод суммы commit 8943db9203d5fa034b71b804a98b527e4218c6f6 Author: Alice (EfimovaLA) Date: Tue Apr 9 18:54:11 2024 +0300 code: изменена функция main commit 0222fafea412e4f51ca65ba68c371fb9e2bec08a Author: Alice (EfimovaLA) Date: Mon Apr 8 23:31:24 2024 +0300 build: добавлен файл проекта commit 2e564bd989bddfc4ebeb0c47e253032815c05617 Author: Alice (EfimovaLA) Date: Mon Apr 8 23:29:23 2024 +0300 code: заготовка программы 2 способ: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate 63c24a4 (HEAD -> main) git: игнорирование файлов 6292782 code: добавлен вывод разности b8dc6ec code: добавлен вывод суммы 8943db9 code: изменена функция main 0222faf build: добавлен файл проекта 2e564bd code: заготовка программы 3 способ: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 63c24a4 (HEAD -> main) git: игнорирование файлов * 6292782 code: добавлен вывод разности * b8dc6ec code: добавлен вывод суммы * 8943db9 code: изменена функция main * 0222faf build: добавлен файл проекта * 2e564bd code: заготовка программы 20. Описание git log --stat: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --stat commit d72791f9454a3c336df728b124ad2518732821d2 (HEAD -> main) Author: Alice (EfimovaLA) Date: Tue Apr 9 20:12:44 2024 +0300 git: игнорирование файлов .gitignore | 4 ++++ 1 file changed, 4 insertions(+) 1)Мы видим полный хэш коммита. 2)Автора коммита с именем и почтой. 3)Указана дата создания коммита. 4)Название коммита. 5)Перечислены сами изменения. 21. Пробую фильтры для коммитов по разным признакам: 1) фильтр по main.cpp: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git log -- main.cpp commit 6292782a16546643add744a3bf1546bff4d71a23 Author: Alice (EfimovaLA) Date: Tue Apr 9 19:07:15 2024 +0300 code: добавлен вывод разности commit b8dc6ec62aacb5145d19cfc767e9db29fa987087 Author: Alice (EfimovaLA) Date: Tue Apr 9 18:57:59 2024 +0300 code: добавлен вывод суммы commit 8943db9203d5fa034b71b804a98b527e4218c6f6 Author: Alice (EfimovaLA) Date: Tue Apr 9 18:54:11 2024 +0300 code: изменена функция main commit 2e564bd989bddfc4ebeb0c47e253032815c05617 Author: Alice (EfimovaLA) Date: Mon Apr 8 23:29:23 2024 +0300 code: заготовка программы 2) фильтр по code: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --grep "code:" commit 6292782a16546643add744a3bf1546bff4d71a23 Author: Alice (EfimovaLA) Date: Tue Apr 9 19:07:15 2024 +0300 code: добавлен вывод разности commit b8dc6ec62aacb5145d19cfc767e9db29fa987087 Author: Alice (EfimovaLA) Date: Tue Apr 9 18:57:59 2024 +0300 code: добавлен вывод суммы commit 8943db9203d5fa034b71b804a98b527e4218c6f6 Author: Alice (EfimovaLA) Date: Tue Apr 9 18:54:11 2024 +0300 code: изменена функция main commit 2e564bd989bddfc4ebeb0c47e253032815c05617 Author: Alice (EfimovaLA) Date: Mon Apr 8 23:29:23 2024 +0300 code: заготовка программы 3) фильтр по build: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --grep "build:" commit 0222fafea412e4f51ca65ba68c371fb9e2bec08a Author: Alice (EfimovaLA) Date: Mon Apr 8 23:31:24 2024 +0300 build: добавлен файл проекта 4) фильтр по project.cbp: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git log -- project.cbp commit 0222fafea412e4f51ca65ba68c371fb9e2bec08a Author: Alice (EfimovaLA) Date: Mon Apr 8 23:31:24 2024 +0300 build: добавлен файл проекта 22. Просмотр последних коммитов тремя способами: 1) текущий: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git show HEAD commit d72791f9454a3c336df728b124ad2518732821d2 (HEAD -> main) Author: Alice (EfimovaLA) Date: Tue Apr 9 20:12:44 2024 +0300 git: игнорирование файлов diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..df212eb --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/bin +/obj +/project.layout +/project.depend 2) по имени ветви: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git show main commit d72791f9454a3c336df728b124ad2518732821d2 (HEAD -> main) Author: Alice (EfimovaLA) Date: Tue Apr 9 20:12:44 2024 +0300 git: игнорирование файлов diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..df212eb --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/bin +/obj +/project.layout +/project.depend 3) по хэшу нужного коммита: $ git show d72791f commit d72791f9454a3c336df728b124ad2518732821d2 (HEAD -> main) Author: Alice (EfimovaLA) Date: Tue Apr 9 20:12:44 2024 +0300 git: игнорирование файлов diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..df212eb --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/bin +/obj +/project.layout +/project.depend 4) просмотр предыдущего коммита: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git show HEAD~1 commit 6292782a16546643add744a3bf1546bff4d71a23 Author: Alice (EfimovaLA) Date: Tue Apr 9 19:07:15 2024 +0300 code: добавлен вывод разности diff --git a/main.cpp b/main.cpp index 056d8a1..e84d77b 100644 --- a/main.cpp +++ b/main.cpp @@ -7,5 +7,6 @@ int main() cout << "Enter A and B: "; int a, b; cin >> a >> b; - cout << a + b; + cout << "A + B = " << a + b << '\n'; + cout << "A - B = " << a - b << '\n'; } 23. Внесла произведение чисел в main.cpp, но не сделала коммит. Изменения в рабочей версии: lyuda@DESKTOP-AJN1V4Q 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'; } 1 строка: Отображаются данные для сравнения. В данном случае a/main.cpp и b/main.cpp. 2 строка: В этой строке отображаются внутренние метаданные Git. Номера в этих выходных данных соответствуют хеш-идентификаторам версий объектов Git. 3 и 4 строка: Это обозначения для каждого источника входных и выходных данных. Маркеры изменений. 5 строка: Заголовок фрагмента, окруженный символами @@. Он кратко описывает изменения в файле. В данном случае извлечено 4 строки начиная со строки 9. Также после 9 строки добавлено 5 строк. Остальные строки: Отражают недавние изменения. + или - показывает источник входных данных сравнения. + для b/main.cpp и - для a/main.cpp. 24. Посмотрела изменения 2 и 3 с конца коммитов: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff HEAD~3 HEAD~2 diff --git a/main.cpp b/main.cpp index eac5055..056d8a1 100644 --- a/main.cpp +++ b/main.cpp @@ -7,4 +7,5 @@ int main() cout << "Enter A and B: "; int a, b; cin >> a >> b; + cout << a + b; } 25. Посмотрела разницу между первым коммитом и коммитом разности: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff HEAD~1 HEAD~5 diff --git a/main.cpp b/main.cpp index e84d77b..b4392ec 100644 --- a/main.cpp +++ b/main.cpp @@ -4,9 +4,6 @@ using namespace std; int main() { - cout << "Enter A and B: "; - int a, b; - cin >> a >> b; - cout << "A + B = " << a + b << '\n'; - cout << "A - B = " << a - b << '\n'; + cout << "Hello world!" << endl; + return 0; } diff --git a/project.cbp b/project.cbp deleted file mode 100644 index 99bb702..0000000 --- a/project.cbp +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - 26. Коммит произведения: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: добавлен вывод произведения" [main c1a07cf] code: добавлен вывод произведения 1 file changed, 1 insertion(+) 27. Добавила комментарий в программу и откатила изменения: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git reset --hard HEAD~1 HEAD is now at c1a07cf code: игнорирование файлов 2)lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git checkout HEAD -- main.cpp 27. Зарегестрировалась на сервере и создала ключи: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ ssh-keygen Generating public/private ed25519 key pair. Enter file in which to save the key (/c/Users/lyuda/.ssh/id_ed25519): Created directory '/c/Users/lyuda/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/lyuda/.ssh/id_ed25519 Your public key has been saved in /c/Users/lyuda/.ssh/id_ed25519.pub The key fingerprint is: SHA256:slOIrxuAAvgvQP1wFZVyoZp3E+0AAINBYBKNdLC6JfI lyuda@DESKTOP-AJN1V4Q The key's randomart image is: +--[ED25519 256]--+ |BX++...+ooo | |=.= . ..oo. | |oo o . .oo . | |+o +.o. + | |B + .+o.So . | |o* o ..+. . | |. E o + | | . o . | | o. | +----[SHA256]-----+ 28. Запустила агента и дала доступ к ключам: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ eval $(ssh-agent -s) Agent pid 2761 lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ ssh-add Identity added: /c/Users/lyuda/.ssh/id_ed25519 (lyuda@DESKTOP-AJN1V4Q) 29. Подключится к репозитарию по SSH не вышло, подключилась через http: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git remote add origin git@uit.mpei.ru:EfimovaLA/cs-lab02.git lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git push -u origin main sh: connect to host uit.mpei.ru port 22: Connection timed out fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git remote set-url origin http://uit.mpei.ru/git/EfimovaLA/cs-lab02.git lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git push -u origin main warning: auto-detection of host provider took too long (>2000ms) warning: see https://aka.ms/gcm/autodetect for more information. Enumerating objects: 24, done. Counting objects: 100% (24/24), done. Delta compression using up to 8 threads Compressing objects: 100% (22/22), done. Writing objects: 100% (24/24), 3.04 KiB | 622.00 KiB/s, done. Total 24 (delta 4), 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/EfimovaLA/cs-lab02.git * [new branch] main -> main branch 'main' set up to track 'origin/main'. 30. Открыла Git Bush в папке боба и скопировала проект: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob $ git clone http://uit.mpei.ru/git/EfimovaLA/cs-lab02.git project Cloning into 'project'... remote: Enumerating objects: 24, done. remote: Counting objects: 100% (24/24), done. remote: Compressing objects: 100% (22/22), done. remote: Total 24 (delta 4), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (24/24), done. Resolving deltas: 100% (4/4), done. 31. Настроила git для боба: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git config user.name 'Bob (EfimovaLA)' lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git config user.email 'YefimovaLA@mpei.ru' 32. Добавила коммит произведения и сделала коммит от боба: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git commit -a -m 'code: добавлено произведение' [main 279ce71] code: добавлено произведение 1 file changed, 1 insertion(+) lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git log commit 279ce717b1d1e09e4103032c3e50fb42921c931b (HEAD -> main) Author: Bob (EfimovaLA) Date: Tue Apr 9 23:37:16 2024 +0300 code: добавлено произведение 32. Отправила на сервер коммит: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 387 bytes | 387.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/EfimovaLA/cs-lab02.git 076211a..279ce71 main -> main 33. Загрузила изменения от лица Алисы: lyuda@DESKTOP-AJN1V4Q 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), 367 bytes | 73.00 KiB/s, done. From http://uit.mpei.ru/git/EfimovaLA/cs-lab02 076211a..279ce71 main -> origin/main в рабочей версии изменений нет 34. Посмотрела граф коммитов: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate b96e7ee (HEAD -> main, origin/main) code: добавлено произведение 44d370d git: игнорирование файлов 400a777 code: добавлен вывод разности 61348b1 code: добавлен вывод суммы 7dcfd9c code: изменена функция main 4fc7081 build: добавлен файл проекта 05e1445 code: заготовка программы 35. Продвинула ветку main к версии на сервере: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git pull --ff-only Updating 9d4154b..b77b31d Fast-forward main.cpp | 1 + 1 file changed, 1 insertion(+) 36. Тоже самое пункты 32-35, но от лица Алисы: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -a -m 'code: вывод деления' [main 5f801ed] code: вывод деления 1 file changed, 1 insertion(+) lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 402 bytes | 402.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/EfimovaLA/cs-lab02.git b77b31d..5f801ed main -> main от боба: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git pull Updating b96e7ee..0391d20 Fast-forward main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --oneline --decorate 0391d20 (HEAD -> main, origin/main, origin/HEAD) code: вывод деления b96e7ee code: добавлено произведение 44d370d git: игнорирование файлов 400a777 code: добавлен вывод разности 61348b1 code: добавлен вывод суммы 7dcfd9c code: изменена функция main 4fc7081 build: добавлен файл проекта 05e1445 code: заготовка программы 37. Дополнила программу выводом максимума и отправила на сервер: от Алисы: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -a -m 'code: вывод максимума' [main ffcf0de] code: вывод максимума 1 file changed, 8 insertions(+), 1 deletion(-) lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 473 bytes | 473.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/EfimovaLA/cs-lab02.git 9f0166c..ffcf0de main -> main 38. от Боба добавляем вывод минимума и пытаемся отправить на сервер: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git commit -a -m 'code: добавлен вывод минимума' [main ca0085a] code: добавлен вывод минимума 1 file changed, 5 insertions(+) lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git push To http://uit.mpei.ru/git/EfimovaLA/cs-lab02.git ! [rejected] main -> main (fetch first) error: failed to push some refs to 'http://uit.mpei.ru/git/EfimovaLA/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. появилась подсказка с загрузкой коммитов из удаленного репозитория. 39. Загрузила от боба коммиты с сервера: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git pull 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), 422 bytes | 8.00 KiB/s, done. From http://uit.mpei.ru/git/EfimovaLA/cs-lab02 6a353fa..97dddd0 main -> origin/main Auto-merging main.cpp CONFLICT (content): Merge conflict in main.cpp Automatic merge failed; fix conflicts and then commit the result. 40. Посмотрело дерево коммитов: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main|MERGING) $ git log --oneline --decorate --all --graph * ca0085a (HEAD -> main) code: добавлен вывод минимума | * 97dddd0 (origin/main, origin/HEAD) code: вывод максимума |/ * 6a353fa code: вывод деления * c9f40a5 code: добавлен вывод произведения * d4b7405 code: добавлен вывод произведения * ed6e273 git: игнорирование файлов * 8b4db8a code: добавлен вывод разности * 4f4b4db code: добавлен вывод суммы * 5355a89 code: изменена функция main * ad432f9 build: добавлен файл проекта * be8ab11 code: заготовка программы 41. Попыталась поместить коммит боба поверх коммита алисы и получила ошибку: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main|MERGING) $ git rebase origin/main main.cpp: needs merge error: cannot rebase: You have unstaged changes. error: additionally, your index contains uncommitted changes. error: Please commit or stash them. 42. Проверила статус репозитория: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main|MERGING) $ git status On branch main Your branch and 'origin/main' have diverged, and have 1 and 1 different commits each, respectively. (use "git pull" if you want to integrate the remote branch with yours) You have unmerged paths. (fix conflicts and run "git commit") (use "git merge --abort" to abort the merge) Unmerged paths: (use "git add ..." to mark resolution) both modified: main.cpp no changes added to commit (use "git add" and/or "git commit -a") Видим предупреждение о расхождении ветки на сервере с моей веткой. Выводит подсказки для решения проблемы. 43. Исправила ошибки в коде закоммитила и продолжила rebase: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1) $ git rebase fatal: It seems that there is already a rebase-merge directory, and I wonder if you are in the middle of another rebase. If that is the case, please try git rebase (--continue | --abort | --skip) If that is not the case, please rm -fr ".git/rebase-merge" and run me again. I am stopping in case you still have something valuable there. lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1) $ git rebase --continue Successfully rebased and updated refs/heads/main. lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --oneline 6b1f7cc (HEAD -> main) code: добавлен вывод минимума 9b19b96 (origin/main, origin/HEAD) code: вывод максимума 0391d20 code: вывод деления b96e7ee code: добавлено произведение 44d370d git: игнорирование файлов 400a777 code: добавлен вывод разности 61348b1 code: добавлен вывод суммы 7dcfd9c code: изменена функция main 4fc7081 build: добавлен файл проекта 05e1445 code: заготовка программы lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git commit --amend -m 'code: вывод максимального и минимального чисел' [main 79a83e4] code: вывод максимального и минимального чисел Date: Sat May 18 12:27:44 2024 +0300 1 file changed, 7 insertions(+) lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --oneline 79a83e4 (HEAD -> main) code: вывод максимального и минимального чисел 9b19b96 (origin/main, origin/HEAD) code: вывод максимума 0391d20 code: вывод деления b96e7ee code: добавлено произведение 44d370d git: игнорирование файлов 400a777 code: добавлен вывод разности 61348b1 code: добавлен вывод суммы 7dcfd9c code: изменена функция main 4fc7081 build: добавлен файл проекта 05e1445 code: заготовка программы 44. Создаем от Алисы ветку double и переключаемся на нее. (репозитариий Алисы не синхронизирован с сервером) lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git branch double lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git checkout double Switched to branch 'double' 45. Поменяла тип а и b и сделала коммит: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (double) $ git commit -a -m 'code: тип данных double' [double 3d4e90f] code: тип данных double 1 file changed, 1 insertion(+), 1 deletion(-) lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (double) $ git checkout main Switched to branch 'main' Your branch is up to date with 'origin/main'. 46. Синхронизировала с сервером lyuda@DESKTOP-AJN1V4Q 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), 446 bytes | 44.00 KiB/s, done. From http://uit.mpei.ru/git/EfimovaLA/cs-lab02 9b19b96..79a83e4 main -> origin/main lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git pull Updating 9b19b96..79a83e4 Fast-forward main.cpp | 7 +++++++ 1 file changed, 7 insertions(+) lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * d89e435 (double) code: тип данных double | * 79a83e4 (HEAD -> main, origin/main) code: вывод максимального и минимального чисел |/ * 9b19b96 code: вывод максимума * 0391d20 code: вывод деления * b96e7ee code: добавлено произведение * 44d370d git: игнорирование файлов * 400a777 code: добавлен вывод разности * 61348b1 code: добавлен вывод суммы * 7dcfd9c code: изменена функция main * 4fc7081 build: добавлен файл проекта * 05e1445 code: заготовка программы 47. переключились на ветку double и также посмотрели дерево коммитов: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git checkout double Switched to branch 'double' lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (double) $ git log --oneline --decorate --all --graph * d89e435 (HEAD -> double) code: тип данных double | * 79a83e4 (origin/main, main) code: вывод максимального и минимального чисел |/ * 9b19b96 code: вывод максимума * 0391d20 code: вывод деления * b96e7ee code: добавлено произведение * 44d370d git: игнорирование файлов * 400a777 code: добавлен вывод разности * 61348b1 code: добавлен вывод суммы * 7dcfd9c code: изменена функция main * 4fc7081 build: добавлен файл проекта * 05e1445 code: заготовка программы 48. слила ветки и отправила на сервер: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git merge double Auto-merging main.cpp Merge made by the 'ort' strategy. main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git push Enumerating objects: 10, done. Counting objects: 100% (10/10), done. Delta compression using up to 8 threads Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 755 bytes | 755.00 KiB/s, done. Total 6 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0) remote: . Processing 1 references remote: Processed 1 references in total To http://uit.mpei.ru/git/EfimovaLA/cs-lab02.git 79a83e4..c4297f7 main -> main 49. Истории веток: lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * c4297f7 (HEAD -> main, origin/main) Merge branch 'double' |\ | * d89e435 (double) code: тип данных double * | 79a83e4 code: вывод максимального и минимального чисел |/ * 9b19b96 code: вывод максимума * 0391d20 code: вывод деления * b96e7ee code: добавлено произведение * 44d370d git: игнорирование файлов * 400a777 code: добавлен вывод разности * 61348b1 code: добавлен вывод суммы * 7dcfd9c code: изменена функция main * 4fc7081 build: добавлен файл проекта * 05e1445 code: заготовка программы lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (main) $ git checkout double Switched to branch 'double' lyuda@DESKTOP-AJN1V4Q MINGW64 ~/Desktop/lab02/alice/project (double) $ git log --oneline --decorate --all --graph * c4297f7 (origin/main, main) Merge branch 'double' |\ | * d89e435 (HEAD -> double) code: тип данных double * | 79a83e4 code: вывод максимального и минимального чисел |/ * 9b19b96 code: вывод максимума * 0391d20 code: вывод деления * b96e7ee code: добавлено произведение * 44d370d git: игнорирование файлов * 400a777 code: добавлен вывод разности * 61348b1 code: добавлен вывод суммы * 7dcfd9c code: изменена функция main * 4fc7081 build: добавлен файл проекта * 05e1445 code: заготовка программы