diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..3593af0 --- /dev/null +++ b/README.txt @@ -0,0 +1,479 @@ +Отчет по лабораторной работе № 2 "Система контроля версий Git" + +Выполнил: Киселёв М. И. +Группа: А-01-22 +Проверил: Козлюк Д. А. + +Примечание: работа выполнялась на Windows. + +1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02 +$ + +2. Создал каталоги Алисы и Боба, создал каталог "project": + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02 +$ mkdir alice + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02 +$ mkdir bob + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02 +$ cd alice + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice +$ mkdir project + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice +$ cd project + +3. Инициализировал репозитарий: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project +$ git init +Initialized empty Git repository in C:/Users/Anchovy/Desktop/lab02/alice/project/.git/ + +4. Настроил репозитарий Алисы, чтобы коммиты были от ее имени: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git config user.name 'Alice (KiseliovMI)' + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git config user.email 'kiseliovmi@mpei.ru' + +5. После создания проекта в репозитарии Алисы, добавил файл main.cpp в индекс: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +6. Выполнил коммит с файлом main.cpp: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: заготовка программы' +[main (root-commit) d4143d0] code: заготовка программы + 1 file changed, 9 insertions(+) + create mode 100644 main.cpp + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m "project.cbp" +[main 5c79b2a] project.cbp + 1 file changed, 3 insertions(+), 2 deletions(-) + +7. Просмотрел состояние рабочей копии: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git status +On branch main (в ветке main) +Untracked files: (список файлов не включённых в коммит) + (use "git add ..." to include in what will be committed) + bin/ + obj/ + project.cbp + +nothing added to commit but untracked files present (use "git add" to track) + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m "project.cbp" +[main 054e84d] project.cbp + 1 file changed, 2 insertions(+) + +Anchovy@DESKTOP-RK8AGV4 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.cbp + project.depend + +nothing added to commit but untracked files present (use "git add" to track) + +8. Создал закрытый ключ: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ ssh-keygen +Generating public/private rsa key pair. +Enter file in which to save the key (/c/Users/Anchovy/.ssh/id_rsa): +/c/Users/Anchovy/.ssh/id_rsa already exists. +Overwrite (y/n)? y +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /c/Users/Anchovy/.ssh/id_rsa +Your public key has been saved in /c/Users/Anchovy/.ssh/id_rsa.pub +The key fingerprint is: +SHA256:URcf+uwNrBmXSPoQEd0b+dxC0/4p5T7wLZNF1Qd/L9o Anchovy@DESKTOP-RK8AGV4 +The key's randomart image is: ++---[RSA 3072]----+ +| +oooo+.| +| . o.o*o=| +| . . o..B*| +| . + =ooO| +| S o o @o+| +| o @ *o| +| = Eoo| +| ++.| +| o.| ++----[SHA256]-----+ + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ eval $(ssh-agent -s) +Agent pid 127 + +9. Загрузил ключ: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ ssh-add +Enter passphrase for /c/Users/Anchovy/.ssh/id_rsa: +Identity added: /c/Users/Anchovy/.ssh/id_rsa (Anchovy@DESKTOP-RK8AGV4) + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ cat ~/.ssh/id_rsa.pub +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCqlim4Qjhpk242c7c01B2splOrJKtyC1rDsokDlew17NCC/jqAruKjdi+UFrDBkqHZCu25TYhdqASQEHECkX8GAdPDhqHxPMsYHrwyVnuzTtbWHBB/wigDfJx02PxbFLNwJpCSGOag/x3ReqjBa+XClRJ8VRiO9SGBMs2zziZ1fJagc0SGVtV5Bd4+EyTQnl0ZU0lwIa/sSW0BLyObmSuyKSPddBTVT7XwjImNmmoccOa+jkYiFfHiuDJ+I1vGAAqEtqV5jBx1noLaZWN6Mh2yTzAinYbdAxR+SN64C8u3mNHG/4P95nvmac7v5i1xZdrpXMuCCIAFn7pkTR7s/jY8oDyqXJoGXptdJ3JIeLfzEYD42reGHxtvyke4MpIwXvhayzAVtY3ujE0vBECoHgdZG0+QQ0gFR5aq6O86rw3c3hhkr1qldtzzdn4qULk5Q2pk3iso93a8IZNx7k2bxfI5YkAActla9ZsZ3JynWxBI/q9SaMJBjK7+9MCetu2i+GE= Anchovy@DESKTOP-RK8AGV4 + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +10. Выполнил коммит с .gitignore: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'git: игнорирование' +On branch main +Untracked files: + (use "git add ..." to include in what will be committed) + .gitignore + project.cbp + project.depend + +nothing added to commit but untracked files present (use "git add" to track) + +11. Сделал push существующего репозитория из командной строки: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git remote add origin git@uit.mpei.ru:KiseliovMI/cs-lab02.git + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/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% (6/6), done. +Writing objects: 100% (9/9), 927 bytes | 231.00 KiB/s, done. +Total 9 (delta 1), reused 0 (delta 0), pack-reused 0 +remote: . Processing 1 references +remote: Processed 1 references in total +To uit.mpei.ru:KiseliovMI/cs-lab02.git + * [new branch] main -> main +branch 'main' set up to track 'origin/main'. + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ gir remote -v +bash: gir: command not found + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git remote -v +origin git@uit.mpei.ru:KiseliovMI/cs-lab02.git (fetch) +origin git@uit.mpei.ru:KiseliovMI/cs-lab02.git (push) + +12. Выполнил загрузку изменений: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git fetch +remote: Enumerating objects: 5, done. +remote: Counting objects: 100% (5/5), done. +remote: Compressing objects: 100% (2/2), done. +remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 309 bytes | 28.00 KiB/s, done. +From uit.mpei.ru:KiseliovMI/cs-lab02 + 054e84d..6820e91 main -> origin/main + +13. Просмотрел историю всех веток: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 6820e91 (origin/main) code: умножение +* 054e84d (HEAD -> main) project.cbp +* 5c79b2a project.cbp +* d4143d0 code: заготовка программы + +14. Продвинул ветку main к скачанной версии: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git pull --ff-only +Updating 054e84d..6820e91 +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +15. Выполнил коммит с делением и отправил его на сервер: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: деление' +[main 2c5da37] code: деление + 1 file changed, 2 insertions(+), 1 deletion(-) + +Anchovy@DESKTOP-RK8AGV4 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% (2/2), done. +Writing objects: 100% (3/3), 321 bytes | 321.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:KiseliovMI/cs-lab02.git + 6820e91..2c5da37 main -> main + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +16. Выполнил коммит с поиском максимума и отправил его на сервер: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: максимум' +[main afac10a] code: максимум + 1 file changed, 6 insertions(+) + +Anchovy@DESKTOP-RK8AGV4 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% (2/2), done. +Writing objects: 100% (3/3), 340 bytes | 340.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:KiseliovMI/cs-lab02.git + 2c5da37..afac10a main -> main + +17. Создал ветку double и переключился на неё: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git branch double + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git checkout double +Switched to branch 'double' + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (double) +$ git add main.cpp + +18. Выполнил коммит с заменой типа перемнных: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (double) +$ git commit -m 'code: дабл' +[double 7080e44] code: дабл + 1 file changed, 1 insertion(+), 1 deletion(-) + +19. Переключился на ветку main и выполнил загрузку изменений: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (double) +$ git checkout main +Switched to branch 'main' +Your branch is up to date with 'origin/main'. + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git fetch + +20. Слил ветку double в main: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git merge double +Updating afac10a..7080e44 +Fast-forward + main.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +21. Отправил измения на сервер: + +Anchovy@DESKTOP-RK8AGV4 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% (2/2), done. +Writing objects: 100% (3/3), 296 bytes | 296.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:KiseliovMI/cs-lab02.git + afac10a..7080e44 main -> main + +Компьютер Боба: + +1. Клонировал проект: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob +$ git clone git@uit.mpei.ru:KiseliovMI/cs-lab02.git project +Cloning into 'project'... +Enter passphrase for key '/c/Users/Anchovy/.ssh/id_rsa': +remote: Enumerating objects: 9, done. +remote: Counting objects: 100% (9/9), done. +remote: Compressing objects: 100% (6/6), done. +remote: Total 9 (delta 1), reused 0 (delta 0), pack-reused 0 +Receiving objects: 100% (9/9), done. +Resolving deltas: 100% (1/1), done. + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob +$ cd project + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git config git config user.name 'Bob (KiseliovMI)' +usage: git config [] + +Config file location + --global use global config file + --system use system config file + --local use repository config file + --worktree use per-worktree config file + -f, --file use given config file + --blob read config from given blob object + +Action + --get get value: name [value-pattern] + --get-all get all values: key [value-pattern] + --get-regexp get values for regexp: name-regex [value-pattern] + --get-urlmatch get value specific for the URL: section[.var] URL + --replace-all replace all matching variables: name value [value-pattern] + --add add a new variable: name value + --unset remove a variable: name [value-pattern] + --unset-all remove all matches: name [value-pattern] + --rename-section rename section: old-name new-name + --remove-section remove a section: name + -l, --list list all + --fixed-value use string equality when comparing values to 'value-pattern' + -e, --edit open an editor + --get-color find the color configured: slot [default] + --get-colorbool find the color setting: slot [stdout-is-tty] + +Type + -t, --type value is given this type + --bool value is "true" or "false" + --int value is decimal number + --bool-or-int value is --bool or --int + --bool-or-str value is --bool or string + --path value is a path (file or directory name) + --expiry-date value is an expiry date + +Other + -z, --null terminate values with NUL byte + --name-only show variable names only + --includes respect include directives on lookup + --show-origin show origin of config (file, standard input, blob, command line) + --show-scope show scope of config (worktree, local, global, system, command) + --default with --get, use default value when missing entry + +2. Настроил репозитарий Боба: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git config user.name 'Bob (KiseliovMI)' + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git config user.email 'kiseliovmi@mpei.ru' + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git add main.cpp + +3. Выполнил коммит с добавлением умножения: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git commit -m 'code: умножение' +[main 6820e91] code: умножение + 1 file changed, 2 insertions(+), 1 deletion(-) + +4. Отправил коммит на сервер: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +Enter passphrase for key '/c/Users/Anchovy/.ssh/id_rsa': +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 8 threads +Compressing objects: 100% (2/2), done. +Writing objects: 100% (3/3), 329 bytes | 329.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:KiseliovMI/cs-lab02.git + 054e84d..6820e91 main -> main + +5. Выполнил загрузку изменений: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git fetch +Enter passphrase for key '/c/Users/Anchovy/.ssh/id_rsa': +remote: Enumerating objects: 5, done. +remote: Counting objects: 100% (5/5), done. +remote: Compressing objects: 100% (2/2), done. +remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 301 bytes | 13.00 KiB/s, done. +From uit.mpei.ru:KiseliovMI/cs-lab02 + 6820e91..2c5da37 main -> origin/main + +6. Просмотрел историю всех веток: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* 2c5da37 (origin/main, origin/HEAD) code: деление +* 6820e91 (HEAD -> main) code: умножение +* 054e84d project.cbp +* 5c79b2a project.cbp +* d4143d0 code: заготовка программы + +7. Продвинул ветку main к скачанной версии: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git pull --ff-only +Enter passphrase for key '/c/Users/Anchovy/.ssh/id_rsa': +Updating 6820e91..2c5da37 +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git add main.cpp + +8. Выполнил коммит с поиском минимума: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git commit -m 'code: минимум' +[main a6f6022] code: минимум + 1 file changed, 6 insertions(+) + +9. Отправил коммит на сервер: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +Enter passphrase for key '/c/Users/Anchovy/.ssh/id_rsa': +To uit.mpei.ru:KiseliovMI/cs-lab02.git + ! [rejected] main -> main (fetch first) +error: failed to push some refs to 'uit.mpei.ru:KiseliovMI/cs-lab02.git' +hint: Updates were rejected because the remote contains work that you do +hint: not have locally. This is usually caused by another repository pushing +hint: to the same ref. You may want to first integrate the remote changes +hint: (e.g., 'git pull ...') before pushing again. +hint: See the 'Note about fast-forwards' in 'git push --help' for details. + +10. Выполнил загрузку изменений: + +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +$ git fetch +Enter passphrase for key '/c/Users/Anchovy/.ssh/id_rsa': +remote: Enumerating objects: 5, done. +[detached HEAD 5f3a51c] code: минимум + 1 file changed, 6 insertions(+)% (2/2), done. +Successfully rebased and updated refs/heads/main. +Unpacking objects: 100% (3/3), 320 bytes | 13.00 KiB/s, done. +Anchovy@DESKTOP-RK8AGV4 MINGW64 ~/Desktop/lab02/bob/project (main) +