Alice (KiseliovMI) 2 лет назад
Родитель 7080e44745
Сommit 53ded9eee9

@ -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 <file>..." 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 <file>..." 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 <file>..." 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 [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> 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)
Загрузка…
Отмена
Сохранить