Отсчёт по лабораторной работе № 2 "Система контроля версий Git" Выполнил: Огарков И. А. Группа: А-02-23 Проверил: Козлюк Д. А. Примечание: работа выполнялась на Windows. 1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02 $ ls 2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто: Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02 $ ls Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02 $ 3. Создал каталоги Алисы и Боба, создал каталог "project", изучил команду "cd" в процессе: Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02 $ mkdir alice Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02 $ mkdir bob Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02 $ cd alice Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice $ mkdir project Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice $ ls project/ Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice $ cd project 4. Инициализировал репозитарий: Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project $ git init Initialized empty Git repository in C:/Users/Александр/Desktop/lab02/alice/project/.git/ Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (master) $ git branch -m main Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ ls -A .git/ Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git config user.name 'Alice (OgarkovIA)' Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git config user.email 'OgarkovIA@mpei.ru' 5. Создание коммитов Запустил CodeBlocks и создал проект в репозитории Алисы (Говорят, что нужно пояснить каждую строку...) Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/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) Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'code: заготовка программы' [main be8cf41] code: заготовка программы 1 file changed, 9 insertions(+) create mode 100644 main.cpp 6. Составление сообщений к коммитам Александр@DESKTOP-VHTT7N5 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 Александр@DESKTOP-VHTT7N5 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: project.cbp Untracked files: (use "git add ..." to include in what will be committed) main.cpp project.layout Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'build: добавлен файл проекта' [main (root-commit) e2c2965] build: добавлен файл проекта 1 file changed, 38 insertions(+) create mode 100644 project.cbp Заменил тело функции main() на ввод двух чисел: cout << "Enter A and B: "; int a, b; cin >> a >> b; Александр@DESKTOP-VHTT7N5 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.layout no changes added to commit (use "git add" and/or "git commit -a") Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'build: замена тела функции main() на ввод двух чисел' [main b054ecc] build: замена тела функции main() на ввод двух чисел 1 file changed, 5 insertions(+), 1 deletion(-) Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'build: добавлен вывод суммы чисел a и b' [main 1d03b32] build: добавлен вывод суммы чисел a и b 1 file changed, 3 insertions(+), 2 deletions(-) Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'build: добавлен вывод разности чисел a и b' [main ae25d74] build: добавлен вывод разности чисел a и b 1 file changed, 3 insertions(+) 7. Игнорирование файлов Создал файл '.gitignore' и добавил в него игнорируемые каталоги и файлы $ 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: .gitignore Untracked files: (use "git add ..." to include in what will be committed) Empty.c no changes added to commit (use "git add" and/or "git commit -a") Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git add .gitignore Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'git: добавлен .gitignore для игнорирования каталога bin и obj, а также файлов *.layout' [main 8536918] git: добавлен .gitignore для игнорирования каталога bin и obj, а также файлов *.layout 1 file changed, 1 insertion(+), 1 deletion(-) 8. Просмотр истории Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git log commit 8536918c1245f46b7fc5a65cb04d5c0f5002cb14 (HEAD -> main) Author: Alice (OgarkovIA) Date: Sat Mar 23 22:30:48 2024 +0300 git: добавлен .gitignore для игнорирования каталога bin и obj, а также файлов *.layout commit 6ea8a095758e80e6e0e2219e3bf2e8e553bf182b Author: Alice (OgarkovIA) Date: Sat Mar 23 22:25:57 2024 +0300 git: добавлен .gitignore для игнорирования каталога bin и obj, а также файлов *.layout commit ae25d7438090f0c5b7c27ba5eec200abfce615d7 Author: Alice (OgarkovIA) Date: Sat Mar 23 22:05:04 2024 +0300 build: добавлен вывод разности чисел a и b commit 1d03b32a96ebe4050d33193e058616a9165cbbb4 Author: Alice (OgarkovIA) Date: Sat Mar 23 21:50:28 2024 +0300 build: добавлен вывод суммы чисел a и b commit b054ecc9e38c43592c0f5ec09de2b67a06b2a22d Author: Alice (OgarkovIA) Date: Sat Mar 23 20:06:39 2024 +0300 : Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --stat commit 8536918c1245f46b7fc5a65cb04d5c0f5002cb14 (HEAD -> main) Author: Alice (OgarkovIA) Date: Sat Mar 23 22:30:48 2024 +0300 git: добавлен .gitignore для игнорирования каталога bin и obj, а также файлов *.layout .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6ea8a095758e80e6e0e2219e3bf2e8e553bf182b Author: Alice (OgarkovIA) Date: Sat Mar 23 22:25:57 2024 +0300 git: добавлен .gitignore для игнорирования каталога bin и obj, а также файлов *.layout .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit ae25d7438090f0c5b7c27ba5eec200abfce615d7 Author: Alice (OgarkovIA) Date: Sat Mar 23 22:05:04 2024 +0300 build: добавлен вывод разности чисел a и b main.cpp | 3 +++ 1 file changed, 3 insertions(+) commit 1d03b32a96ebe4050d33193e058616a9165cbbb4 Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate 8536918 (HEAD -> main) git: добавлен .gitignore для игнорирования каталога bin и obj, а также файлов *.layout 6ea8a09 git: добавлен .gitignore для игнорирования каталога bin и obj, а также файлов *.layout ae25d74 build: добавлен вывод разности чисел a и b 1d03b32 build: добавлен вывод суммы чисел a и b b054ecc build: замена тела функции main() на ввод двух чисел be8cf41 code: заготовка программы e2c2965 build: добавлен файл проекта Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 8536918 (HEAD -> main) git: добавлен .gitignore для игнорирования каталога bin и obj, а также файлов *.layout * 6ea8a09 git: добавлен .gitignore для игнорирования каталога bin и obj, а также файлов *.layout * ae25d74 build: добавлен вывод разности чисел a и b * 1d03b32 build: добавлен вывод суммы чисел a и b * b054ecc build: замена тела функции main() на ввод двух чисел * be8cf41 code: заготовка программы * e2c2965 build: добавлен файл проекта Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git log -- main.cpp commit ae25d7438090f0c5b7c27ba5eec200abfce615d7 Author: Alice (OgarkovIA) Date: Sat Mar 23 22:05:04 2024 +0300 build: добавлен вывод разности чисел a и b commit 1d03b32a96ebe4050d33193e058616a9165cbbb4 Author: Alice (OgarkovIA) Date: Sat Mar 23 21:50:28 2024 +0300 build: добавлен вывод суммы чисел a и b commit b054ecc9e38c43592c0f5ec09de2b67a06b2a22d Author: Alice (OgarkovIA) Date: Sat Mar 23 20:06:39 2024 +0300 build: замена тела функции main() на ввод двух чисел commit be8cf41c0af8cde0b64c35b0f974aeb4cf3d1ba3 Author: Alice (OgarkovIA) Date: Sat Mar 23 19:49:33 2024 +0300 code: заготовка программы Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --grep 'code:' commit be8cf41c0af8cde0b64c35b0f974aeb4cf3d1ba3 Author: Alice (OgarkovIA) Date: Sat Mar 23 19:49:33 2024 +0300 code: заготовка программы Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --grep 'build:' commit ae25d7438090f0c5b7c27ba5eec200abfce615d7 Author: Alice (OgarkovIA) Date: Sat Mar 23 22:05:04 2024 +0300 build: добавлен вывод разности чисел a и b commit 1d03b32a96ebe4050d33193e058616a9165cbbb4 Author: Alice (OgarkovIA) Date: Sat Mar 23 21:50:28 2024 +0300 build: добавлен вывод суммы чисел a и b commit b054ecc9e38c43592c0f5ec09de2b67a06b2a22d Author: Alice (OgarkovIA) Date: Sat Mar 23 20:06:39 2024 +0300 build: замена тела функции main() на ввод двух чисел commit e2c29656fbea656b57631f33c2c7a19a27d81f9d Author: Alice (OgarkovIA) Date: Sat Mar 23 19:46:47 2024 +0300 build: добавлен файл проекта Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git log -- project.cbp commit e2c29656fbea656b57631f33c2c7a19a27d81f9d Author: Alice (OgarkovIA) Date: Sat Mar 23 19:46:47 2024 +0300 build: добавлен файл проекта Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git show HEAD~2 commit ae25d7438090f0c5b7c27ba5eec200abfce615d7 Author: Alice (OgarkovIA) Date: Sat Mar 23 22:05:04 2024 +0300 build: добавлен вывод разности чисел a и b diff --git a/main.cpp b/main.cpp index 0789c44..ecca766 100644 --- a/main.cpp +++ b/main.cpp @@ -10,5 +10,8 @@ int main() { int sum = a + b; cout << "Sum of A and B is: " << sum << endl; + int difference = a - b; + cout << "Difference of A and B is: " << difference << endl; + return 0; } Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff HEAD~2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9d83ebf --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/bin +/obj +*.layout 9. Отказ изменений Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git reset --hard HEAD~1 HEAD is now at 6ea8a09 git: добавлен .gitignore для игнорирования каталога bin и obj, а также файлов *.layout Добавил над функцией main() комментарий: // you may type whatever you want Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ git checkout HEAD -- main.cpp 10. Обмен кодом через удалённое хранилище Сделал регистрацию на сайте Git УИТ Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ ssh-keygen Generating public/private ed25519 key pair. Enter file in which to save the key (/c/Users/Александр/.ssh/id_ed25519): Created directory '/c/Users/\320\220\320\273\320\265\320\272\321\201\320\260\320\275\320\264\321\200/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/Александр/.ssh/id_ed25519 Your public key has been saved in /c/Users/Александр/.ssh/id_ed25519.pub The key fingerprint is: SHA256:cM4BHuYMNX5QKY+NY+w4ovZj8jcYJa3SUntV+J1TBQ0 Александр@DESKTOP-VHTT7N5 The key's randomart image is: +--[ED25519 256]--+ | ..B.o. E=. | | B.*.. . . | | ..*** . o | | o o*Boo + | | o =+..S . | | o.=o.. | | .o.+. | |.o + o | |. =oo . | +----[SHA256]-----+ Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ eval $(ssh-agent -s) Agent pid 2185 Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ ssh-add Enter passphrase for /c/Users/Александр/.ssh/id_ed25519: Identity added: /c/Users/Александр/.ssh/id_ed25519 (Александр@DESKTOP-VHTT7N5) Александр@DESKTOP-VHTT7N5 MINGW64 ~/Desktop/lab02/alice/project (main) $ cat ~/.ssh/id_ed25519.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICFHv0MW5ahhx8YMeo/JBwqOXU8eSfOShn9+ZqJWxzAc Александр@DESKTOP-VHTT7N5 Скопировал открытый ключ и добавил в список открытых ключейсвоей учётной записи