Отчет по лабораторной работе № 2 "Система контроля версий Git" Выполнил: Немыкин Никита Олегович Группа: А-02-22 Проверил: Примечание: работа выполнялась на Windows. 1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2 2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто: nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2 $ ls 3. Создал каталоги Алисы и Боба, создал каталог "project", изучил команду "cd" в процессе: nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2 $ mkdir alice nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2 $ mkdir bob nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2 $ cd alice nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice $ mkdir project nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice $ cd .. nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2 $ cd alice nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice $ cd project 4. Инициализировал репозитарий: nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project $ git init Initialized empty Git repository in C:/Users/nn110/OneDrive/Рабочий стол/laba2/alice/project/.git/ 5. Поменял имя ветки на main nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (master) $ git branch -m main Настроил репозитарий Алисы: nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git config user.name 'Alice (NemykinNO)' nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git config user.email 'NemykinNO@mpei.ru 6.Воспользовался командой git status, чтобы просмотреть состояние рабочей копии nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git status On branch main // находимся на ветке main No commits yet // комиты отсутствуют Untracked files: // неотслеживаемые файлы (use "git add ..." to include in what will be committed) .vs/ laba02.cpp laba02.sln laba02.vcxproj laba02.vcxproj.filters laba02.vcxproj.user nothing added to commit but untracked files present (use "git add" to track)// ничего не добавлено в комит, но представлены неотслеживаемые файлы 7.Добавил файл laba02.cpp в индекс название вместо project.cpp nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git add laba02.cpp 8.Выполнил коммит с файлом laba02.cpp nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git commit -m 'code: заготовка программы' [main (root-commit) 91c7889] code: заготовка программы 1 file changed, 20 insertions(+) create mode 100644 laba02.cpp 9. Добавил файл laba02.sln в индекс nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git add laba02.sln 10.Выполнил коммит с файлом laba02.sln nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git commit -m 'bild: добавлен файл проекта' [main 7542915] bild: добавлен файл проекта 1 file changed, 31 insertions(+) create mode 100644 laba02.sln 11.Закоммител изменения в файле nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git commit -a -m "добавление разницы" [main 61af41c] добавление разницы 1 file changed, 6 insertions(+), 11 deletions(-) 12. Создал файл gitignore, внес его в индекс и закоммитил nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git commit -a -m "git создание .gitignore" [main 3b38ec5] git создание .gitignore 1 file changed, 363 insertions(+) create mode 100644 .gitignore 13. Воспользовался командой для показа журнала репозитария nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git log commit 3b38ec5f3fb7ea95c21646e2b57ff8edda2538da (HEAD -> main) Author: Alice (NemykinNO) Date: Mon Mar 13 14:52:26 2023 +0300 git создание .gitignore commit 61af41c01b549c1bb5849d81fd467c5df3b466ba Author: Alice (NemykinNO) Date: Mon Mar 13 14:35:10 2023 +0300 добавление разницы commit 7542915a8a097edce7702fc9ef60f75ee7ec4e96 Author: Alice (NemykinNO) Date: Mon Mar 13 14:26:03 2023 +0300 bild: добавлен файл проекта commit 91c7889988753e37de1456c34133027582a64b69 Author: Alice (NemykinNO) Date: Mon Mar 13 14:20:57 2023 +0300 code: заготовка программы 14.Просмотрел коммиты компактно nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git log --oneline --decorate --all --graph * 3b38ec5 (HEAD -> main) git создание .gitignore * 61af41c добавление разницы * 7542915 bild: добавлен файл проекта * 91c7889 code: заготовка программы 15.Просмотрел коммиты связаные с laba02.cpp nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git log -- laba02.cpp commit 61af41c01b549c1bb5849d81fd467c5df3b466ba Author: Alice (NemykinNO) Date: Mon Mar 13 14:35:10 2023 +0300 добавление разницы commit 91c7889988753e37de1456c34133027582a64b69 Author: Alice (NemykinNO) Date: Mon Mar 13 14:20:57 2023 +0300 code: заготовка программы 16. Посмотрел коммит с build у меня была опечатка, поэтому bild nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git log --grep "bild:" commit 7542915a8a097edce7702fc9ef60f75ee7ec4e96 Author: Alice (NemykinNO) Date: Mon Mar 13 14:26:03 2023 +0300 bild: добавлен файл проекта nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git log -- laba02.sln commit 7542915a8a097edce7702fc9ef60f75ee7ec4e96 Author: Alice (NemykinNO) Date: Mon Mar 13 14:26:03 2023 +0300 bild: добавлен файл проекта 17. Посмотрел предпоследний коммит nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git show HEAD~1 commit 61af41c01b549c1bb5849d81fd467c5df3b466ba Author: Alice (NemykinNO) Date: Mon Mar 13 14:35:10 2023 +0300 добавление разницы diff --git a/laba02.cpp b/laba02.cpp index 2739469..0af3468 100644 --- a/laba02.cpp +++ b/laba02.cpp @@ -2,19 +2,14 @@ // #include - +using namespace std; int main() { - std::cout << "Hello World!\n"; + cout << "Enter A and B: "; + int a, b; + cin >> a >> b; + cout << "A + B = " << a + b << '\n' + << "A - B = " << a - b << '\n'; } 18. Посмотрел изменения в laba02.cpp nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git diff diff --git a/laba02.cpp b/laba02.cpp index 0af3468..5812c48 100644 --- a/laba02.cpp +++ b/laba02.cpp @@ -9,7 +9,8 @@ int main() int a, b; cin >> a >> b; cout << "A + B = " << a + b << '\n' - << "A - B = " << a - b << '\n'; + << "A - B = " << a - b << '\n'; + cout << "A * B = " << a * b << '\n'; } 19. Посмотрел изменения самого первого коммита. nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git diff HEAD~1 HEAD~3 diff --git a/laba02.cpp b/laba02.cpp index 0af3468..2739469 100644 --- a/laba02.cpp +++ b/laba02.cpp @@ -2,14 +2,19 @@ // #include -using namespace std; + int main() { - cout << "Enter A and B: "; - int a, b; - cin >> a >> b; - cout << "A + B = " << a + b << '\n' - << "A - B = " << a - b << '\n'; + std::cout << "Hello World!\n"; 20. откатился к предыдущему коммиту nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git reset --hard HEAD~1 HEAD is now at 61af41c добавление разницы 21. Убрал изменение в laba02.cpp nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git checkout HEAD -- laba02.cpp 22.Создал пару ключей nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/nn110/.ssh/id_rsa): Created directory '/c/Users/nn110/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/nn110/.ssh/id_rsa Your public key has been saved in /c/Users/nn110/.ssh/id_rsa.pub The key fingerprint is: SHA256:CTK0eHyMNBZe9ucKDMDglm1xw7GXsVmU0LU06IYFOnQ nn110@LAPTOP-P049CSND The key's randomart image is: +---[RSA 3072]----+ |.o..B*+E=o++ | |. +O+O=.*=. o | | +.oX++== .. | |. .. *oo * | | o S . | | . . | | . | | | | | +----[SHA256]-----+ 22.Запустил агент nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ eval $(ssh-agent -s) Agent pid 370 23. Загрузил ключ nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ ssh-add Enter passphrase for /c/Users/nn110/.ssh/id_rsa: Identity added: /c/Users/nn110/.ssh/id_rsa (nn110@LAPTOP-P049CSND) 24. Отобразил открытй ключ nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDnmyrMCWui6fCT8OwHYJeDQ6j+p5oKGQClc7N1nTabfxCXLyj+Lg+O/KJE/BpN6PZNazGGJUFBZxLiDbdE/VUoCUoSCLFNdF30KmQNbImf6FRpmzCO0frriu80d0b1/rbyPt7fm28N02EJvThoQ313ZsKVrMLvJsrg9RKBWtZdjMi1ZbmmFQd3AUIuRWBS2jPwWPt4WqZ25t56hRJrsgDh8qVc5puqldJwHGj9jOCtl962uKEFV8wIVZzxAC2/YbqERSsO90foC5RusLcl0m56NHKbHIUqvPv7ompUKLjTptoSYo5imgo6M4+uuU0JbQW399lQQDXAw3PqfGovXtu3FJkV9l01IhNKgCNNU3T4Hvr2nvkJnqK8u0oujOfzhfB++Zr4Ix6N5Rrm3L8v0UnE4sxDkQELVIoYRXNFgZcjg+hD99WilKdaOK+688lN+i2yBVUHVbXqf4bujKHF1nsL9PoOJghDY7gklB3PXrqyrYIXQCvHrRcBotkrvecQlnE= nn110@LAPTOP-P049CSND 25. добавил удаленный репозитарий nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git remote add origin http://uit.mpei.ru/git/NemykinNO/cs-lab02.git 26. Загрузил ветку в удаленный репозитарий nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git push -u origin main Enumerating objects: 9, done. Counting objects: 100% (9/9), done. Delta compression using up to 8 threads Compressing objects: 100% (8/8), done. Writing objects: 100% (9/9), 2.20 KiB | 322.00 KiB/s, done. Total 9 (delta 0), reused 0 (delta 0), pack-reused 0 remote: . Processing 1 references remote: Processed 1 references in total To http://uit.mpei.ru/git/NemykinNO/cs-lab02.git * [new branch] main -> main branch 'main' set up to track 'origin/main'. 27. Скопировал проект в папку Боба nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git clone http://uit.mpei.ru/git/NemykinNO/cs-lab02.git project Cloning into 'project'... remote: Enumerating objects: 9, done. remote: Counting objects: 100% (9/9), done. remote: Compressing objects: 100% (8/8), done. remote: Total 9 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (9/9), done. 28. Настроил репозитарий Боба nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/Bob/project (main) $ git config user.name 'Bob (NemykinNO)' nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/Bob/project (main) $ git config user.email 'NemykinNO@mpei.ru' 29. Закоммитил изменения от боба nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/Bob/project (main) $ git commit -a -m "code: Усножение от боба" [main 5789e27] code: Усножение от боба 1 file changed, 2 insertions(+) 30. Загрузил их в удаленный репозитарий nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/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), 413 bytes | 206.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 remote: . Processing 1 references remote: Processed 1 references in total To http://uit.mpei.ru/git/NemykinNO/cs-lab02.git 011cce7..5789e27 main -> main 31. Скачал изменения из удаленного репозитария в папку Алисы и закоммитил изменения nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git pull --ff-only Updating 011cce7..5789e27 Fast-forward laba02.cpp | 2 ++ 1 file changed, 2 insertions(+) nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git commit -a -m "добавление деления от Алисы" [main d5d389b] добавление деления от Алисы 1 file changed, 3 insertions(+), 2 deletions(-) 32. загрузил изменения на удаленный репозиторий nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/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), 422 bytes | 422.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 remote: . Processing 1 references remote: Processed 1 references in total To http://uit.mpei.ru/git/NemykinNO/cs-lab02.git 5789e27..d5d389b main -> main 33. Загрузил изменения в папку Боба nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/Bob/project (main) $ git pull --ff-only 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), 402 bytes | 13.00 KiB/s, done. From http://uit.mpei.ru/git/NemykinNO/cs-lab02 5789e27..d5d389b main -> origin/main Updating 5789e27..d5d389b Fast-forward laba02.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 34. Добавил максимум от Алисы nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git commit -a -m "добавление макс от Алисы" [main a082a0b] добавление макс от Алисы 1 file changed, 6 insertions(+), 1 deletion(-) 35. Отправил на сервер nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/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), 433 bytes | 216.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 remote: . Processing 1 references remote: Processed 1 references in total To http://uit.mpei.ru/git/NemykinNO/cs-lab02.git d5d389b..a082a0b main -> main 36. Боб попытался загрузить изменения nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/Bob/project (main) $ git pull --ff-only fatal: Not possible to fast-forward, aborting. 37. Боб выполнил команду git rebase nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/Bob/project (main) $ git rebase origin/main Auto-merging laba02.cpp CONFLICT (content): Merge conflict in laba02.cpp error: could not apply 2023f82... добавление min от Боба 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". Could not apply 2023f82... добавление min от Боба 38. Добафил файл laba02.cpp в индекс и продолжил rebase nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/Bob/project (main|REBASE 1/1) $ git add laba02.cpp nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/Bob/project (main|REBASE 1/1) $ git rebase --continue [detached HEAD a452f31] добавление min от Боба 1 file changed, 10 insertions(+) Successfully rebased and updated refs/heads/main. 39.Создал ветку в репозитарии Алисы и переключился на нее nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git branch double nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git checkout double Switched to branch 'double' 40.Закоммитил изменения nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (double) $ git commit -a -m "Алиса решила поменять тип" [double 9a97b96] Алиса решила поменять тип 1 file changed, 1 insertion(+), 1 deletion(-) 41. Переключился на ветку main nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (double) $ git checkout main Switched to branch 'main' Your branch is up to date with 'origin/main'. 42. слил ветку double в main nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git merge double Auto-merging laba02.cpp Merge made by the 'ort' strategy. laba02.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 43. Посмотрел дерево коммитов nn110@LAPTOP-P049CSND MINGW64 ~/OneDrive/Рабочий стол/laba2/alice/project (main) $ git log --oneline --decorate --all --graph * 2354514 (HEAD -> main) Merge branch 'double' |\ | * 9a97b96 (double) Алиса решила поменять тип * | a452f31 (origin/main) добавление min от Боба |/ * a082a0b добавление макс от Алисы * d5d389b добавление деления от Алисы * 5789e27 code: Усножение от боба * 011cce7 git создание .gitignore * 61af41c добавление разницы * 7542915 bild: добавлен файл проекта * 91c7889 code: заготовка программы