Отчет по лабораторной работе № 2 "Система контроля версий Git" Выполнил: Ершов А.А. Группа: А-01-22 Проверил: Примечание: работа выполнялась на Windows. 1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02 2. Создал два имитируемых пользователя senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02 $ mkdir alice senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02 $ mkdir bob 3. Переключился на "компьютер" алисы senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02 $ cd alice 4. Создал каталог проект senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ mkdir project senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ cd project senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project $ cd .. senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ cd project 5. Инициализируем репозитарий в текущем каталоге senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project $ git init Initialized empty Git repository in C:/Users/senya/OneDrive/Рабочий стол/lab02/alice/project/.git/ 6. Настраиваем репозиторий алисы senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git config user.name 'Alice (YershovArA)' senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git config user.email 'YershovArA@mpei.ru' 7. Проверка состояния рабочей версии senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git status On branch main No commits yet Untracked files: (use "git add ..." to include in what will be committed) main.cpp project.cbp project.layout nothing added to commit but untracked files present (use "git add" to track) 8. Добавляем файл в индекс senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add main.cpp senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git status On branch main No commits yet Changes to be committed: (use "git rm --cached ..." to unstage) new file: main.cpp Untracked files: (use "git add ..." to include in what will be committed) project.cbp project.layout 9. Выполняем коммит с файлом senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m 'code: заготовка программы' [main (root-commit) add19a3] code: заготовка программы 1 file changed, 1 insertion(+) create mode 100644 main.cpp senya@Senya MINGW64 ~/OneDrive/Рабочий стол/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 senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m 'build: добавление файла проекта' [main 350845f] build: добавление файла проекта 1 file changed, 38 insertions(+) create mode 100644 project.cbp senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git status On branch main Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git restore ..." to discard changes in working directory) modified: main.cpp modified: project.cbp Untracked files: (use "git add ..." to include in what will be committed) bin/ obj/ project.layout no changes added to commit (use "git add" and/or "git commit -a") senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add main.cpp senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m "code: добавление вывода суммы и разности" [main 12812da] code: добавление вывода суммы и разности 1 file changed, 11 insertions(+) 10. Добавил игнорирование ненужных файлов senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git status On branch main Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git restore ..." to discard changes in working directory) modified: project.cbp Untracked files: (use "git add ..." to include in what will be committed) .gitignore no changes added to commit (use "git add" and/or "git commit -a") senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add .gitignore senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m "git: игнорирование не нужных файлов" [main 8bd4125] git: игнорирование не нужных файлов 1 file changed, 4 insertions(+) create mode 100644 .gitignore 11. Просмотр истории senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --stat commit 8bd4125dac490644cb906db5586409758e5f2e6a (HEAD -> main) Author: Alice (YershovArA) Date: Sun Mar 26 23:25:54 2023 +0300 git: игнорирование не нужных файлов .gitignore | 4 ++++ 1 file changed, 4 insertions(+) commit 12812daa6ae5ea0a1d4716005090efdc0586bc4a Author: Alice (YershovArA) Date: Sun Mar 26 23:09:04 2023 +0300 code: добавление вывода суммы и разности main.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 350845fb8e848e26ccecfeed6aaa9b20c8be4594 Author: Alice (YershovArA) Date: Sun Mar 26 22:54:54 2023 +0300 build: добавление файла проекта 12. То же самое, но компактнее senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --decorate 8bd4125 (HEAD -> main) git: игнорирование не нужных файлов 12812da code: добавление вывода суммы и разности 350845f build: добавление файла проекта add19a3 code: заготовка программы 13. То же самое для всех веток senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --decorate --all -graph fatal: unrecognized argument: -graph senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 8bd4125 (HEAD -> main) git: игнорирование не нужных файлов * 12812da code: добавление вывода суммы и разности * 350845f build: добавление файла проекта * add19a3 code: заготовка программы 14. Поиск определенных коммитов senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log -- project.cbp --grep "build:" commit 350845fb8e848e26ccecfeed6aaa9b20c8be4594 Author: Alice (YershovArA) Date: Sun Mar 26 22:54:54 2023 +0300 build: добавление файла проекта 15. Просмотр коммита senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git show 12812da commit 12812daa6ae5ea0a1d4716005090efdc0586bc4a Author: Alice (YershovArA) Date: Sun Mar 26 23:09:04 2023 +0300 code: добавление вывода суммы и разности diff --git a/main.cpp b/main.cpp index 8b13789..b77eb33 100644 --- a/main.cpp +++ b/main.cpp @@ -1 +1,12 @@ +#include +#include +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'; + +} 16. Изменения между коммитами senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git diff HEAD~3 HEAD diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f399573 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/obj +/bin +project.depend +project.layout diff --git a/main.cpp b/main.cpp index 8b13789..b77eb33 100644 --- a/main.cpp +++ b/main.cpp @@ -1 +1,12 @@ +#include +#include +using namespace std; +int main(){ + cout << "Enter A and B: "; + int a, b; + cin >> a >> b; senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add main.cpp senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m "code: добавление произведения" [main 80fb14c] code: добавление произведения 1 file changed, 1 insertion(+) senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git show HEAD commit 80fb14cb10fca565e88df91c4ed9a55418991a36 (HEAD -> main) Author: Alice (YershovArA) Date: Sun Mar 26 23:42:08 2023 +0300 code: добавление произведения diff --git a/main.cpp b/main.cpp index b77eb33..b4e9899 100644 --- a/main.cpp +++ b/main.cpp @@ -8,5 +8,6 @@ int main(){ cin >> a >> b; cout << "A + B = " << a + b << '\n'; cout << "A - B = " << a - b << '\n'; + cout << "A * B = " << a * b << '\n'; } 16. Откат senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git reset --hard HEAD~1 HEAD is now at 8bd4125 git: игнорирование не нужных файлов senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git checkout HEAD -- main.cpp 17. Генерирование ключей senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/senya/.ssh/id_rsa): Created directory '/c/Users/senya/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/senya/.ssh/id_rsa Your public key has been saved in /c/Users/senya/.ssh/id_rsa.pub The key fingerprint is: SHA256:UPFRX9Y6vRtxp6do5KzVNKtrHD0RP0WpoYIhA/Kjmjo senya@Senya The key's randomart image is: +---[RSA 3072]----+ | . .. o.... .*| | o o o . . o.+o| | o + o . . +=.| | . . o . . .+o=| | . S . .o+*| |.. oo+=.| |o =.oo+o| |E .B... | |.. .+o. | +----[SHA256]-----+ 18.запуск агента senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ eval $(ssh-agent -s) Agent pid 1120 19. Загрузка ключа senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ ssh-add Enter passphrase for /c/Users/senya/.ssh/id_rsa: Identity added: /c/Users/senya/.ssh/id_rsa (senya@Senya) 20. Отображение открытого ключа senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCdTUYZ+bO88y45TOYQCW8fPExyyLLGtZ5X4KYZAWDVWvI9hgr4ldxVpB4LPYPU4cCDxblDjR8wDq6mO6mHNuf04ea0lt9k5ncmIRuwzMWkMzd2gZz7tYEHAWjHXTV3j8+NKyGK+C7VsrYatIy8F37PMenelA2emdjUguv+84D3OvP2SfPRU9Xe9JD3KsZILTFqI3K0Y/IxxDntRRt4bmfKN+R8sdLvItP+jP4Hf99SITGEcU0IA/1ibG/iANdl83ZjgkkYvnq99Txv6nqtJhLCXVOSzVGE26S6FiOEJmFhr4qZReScKta5ShGWZH73Y+J+r5denbSsFLuU5+Ic/w1u2jkJL8tgS4kltRW35+E61Yc139TyXA/OENFmI7/9cviA2yJ/iskldAL/3uKmHvHLOVOnCxHBFHsNviwicRx2E1l4X9EXWf/pHp9aHQa11hMwHmaL8eXqhRTxzpwlAaxpyKzczpmiNWYeAy5GL491neMZ+kGDNZpLyI/GSaIzqXE= senya@Senya 21. Создание репозитория senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git remote add origin git@uit.mpei.ru:YershovArA/cs-lab02.git 22. Создание "компьютера" боба (текст утреян) 23. Загрузка на сервер senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git push -u origin main The authenticity of host 'uit.mpei.ru (193.233.68.149)' can't be established. ED25519 key fingerprint is SHA256:Q5w0UKEzQKA3J6NyMtjwCLvtAykoxdugIXjx6NwU4NA. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'uit.mpei.ru' (ED25519) to the list of known hosts. Enumerating objects: 12, done. Counting objects: 100% (12/12), done. Delta compression using up to 12 threads Compressing objects: 100% (9/9), done. Writing objects: 100% (12/12), 1.66 KiB | 568.00 KiB/s, done. Total 12 (delta 0), reused 0 (delta 0), pack-reused 0 remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:YershovArA/cs-lab02.git * [new branch] main -> main branch 'main' set up to track 'origin/main'. senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git remote -v origin git@uit.mpei.ru:YershovArA/cs-lab02.git (fetch) origin git@uit.mpei.ru:YershovArA/cs-lab02.git (push) 24. Загрузка изменений senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git fetch remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Compressing objects: 100% (3/3), done. remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), 412 bytes | 51.00 KiB/s, done. From uit.mpei.ru:YershovArA/cs-lab02 8bd4125..5bf7e5e main -> origin/main senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 5bf7e5e (origin/main) code: добавлена печать произведения * 8bd4125 (HEAD -> main) git: игнорирование не нужных файлов * 12812da code: добавление вывода суммы и разности * 350845f build: добавление файла проекта * add19a3 code: заготовка программы 25. Продвигаем ветку мэин к скачанной версии senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git pull --ff-only Updating 8bd4125..5bf7e5e Fast-forward main.cpp | 1 + 1 file changed, 1 insertion(+) senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add main.cpp senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m "code: добавлена печать частного" [main d09a522] code: добавлена печать частного 1 file changed, 1 insertion(+) 26. Отправка коммита senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 12 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 421 bytes | 421.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 uit.mpei.ru:YershovArA/cs-lab02.git 5bf7e5e..d09a522 main -> main senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add main.cpp senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m "code: добавлен вывод минимума" [main b899325] code: добавлен вывод минимума 1 file changed, 5 insertions(+), 2 deletions(-) senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 12 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 438 bytes | 438.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 uit.mpei.ru:YershovArA/cs-lab02.git d09a522..b899325 main -> main senya@Senya MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git pull --ff-only Already up to date.