Krivobokov Nikolay 2 дней назад
Родитель 201bfefd36
Сommit 0e954b3cd3

@ -0,0 +1,665 @@
Отчет по лабораторной работе № 2 "Система контроля версий Git"
Выполнил: Кривобоков Н. С.
Группа: А-03-24
Проверил: Козлюк Д. А.
Примечание: работа выполнялась на Windows 11.
______________________________________________________________________
1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash
kolya@Nikolay MINGW64 ~/Desktop/lab02
$
______________________________________________________________________
2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто:
kolya@Nikolay MINGW64 ~/Desktop/lab02
$ ls
kolya@Nikolay MINGW64 ~/Desktop/lab02
$
______________________________________________________________________
3. Создал каталоги Алисы и Боба, создал каталог "project",
изучил команду "cd" в процессе:
kolya@Nikolay MINGW64 ~/Desktop/lab02
$ mkdir alice
kolya@Nikolay MINGW64 ~/Desktop/lab02
$ mkdir bob
kolya@Nikolay MINGW64 ~/Desktop/lab02
$ cd alice
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice
$ mkdir project
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice
$ cd project
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project
$ cd ..
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice
$ cd project
____________________________________________________________________________________
4. Инициализировал репозитарий:
Infinioka@MSI MINGW64 ~/Рабочий стол/lab02/alice/project
$ git init
Initialized empty Git repository in C:\Users\kolya\Desktop\lab02\alice\project\.git
4.1 Поменял имя ветки на main:
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (master)
$ git branch -m main
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git config user.name 'Alice (KrivobokovNS)'
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git config user.email 'KrivobokovNS@mpei.ru'
__________________________________________________________________________________
5. Создал проект в репозитарии Алисы
Просмотрел состояние рабочей папки:
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
main.cpp
project.cbp
nothing added to commit but untracked files present (use "git add" to track)
5.1 Добавил файл main.cpp в индекс:
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: main.cpp
Untracked files:
(use "git add <file>..." to include in what will be committed)
project.cbp
Теперь появился новый файл, который git просит зафиксировать
5.2 Выполнил коммит с файлом main.cpp:
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: заготовка программы'
[main (root-commit) 27fad3a] code: загатовка программы
1 file changed, 9 insertions(+)
create mode 100644 main.cpp
kolya@Nikolay 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
___________________________________________________________________________________________________________________
6. Заменил тело функции main() на ввод двух чисел
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'build: добавлен файл проекта'
[main 7aeb695] build: добавлен файл проекта
1 file changed, 38 insertions(+)
create mode 100644 project.cbp
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: main.cpp
no changes added to commit (use "git add" and/or "git commit -a")
Здесь чётко видно, что файл main.cpp был изменён
__________________________________________________________________________
7. Добавил в программу вывод разности и суммы a и b
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: добавлен вывод суммы'
[main b7700a9] code: добавлен вывод суммы
1 file changed, 8 insertions(+), 1 deletions(-)
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: добавлен вывод разности'
[main b7700a9] code: добавлен вывод суммы
1 file changed, 2 insertions(+), 1 deletions(-)
_______________________________________________________________________
8.1 Использовал команду git log --oneline --decorate
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate
038615f (HEAD -> main) code: добавлен вывод разности
4002dc2 code: добавлен вывод суммы
2d3889d build: добавлен файл проекта
bf0b295 code: заготовка программы
8.2 Использовал команду git log --oneline --decorate --all
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 038615f (HEAD -> main) code: добавлен вывод разности
* 4002dc2 code: добавлен вывод суммы
* 2d3889d build: добавлен файл проекта
* bf0b295 code: заготовка программы
_________________________________________________________________________
9. Просмотрел предпоследний коммит
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git show HEAD~1
commit 038615f801a06bf6bf7dff32a906c5e23e017af4
Author: Alice (KrivobokovNS) <KrivobokovNS@mpei.ru>
Date: Sun Apr 27 17:44:10 2025 +0300
code: добавлен вывод разности
diff --git a/main.cpp b/main.cpp
index b4392ec..c486466 100644
--- a/main.cpp
+++ b/main.cpp
@ -3,6 +3,7 @@
int main () {
cout << "Enter A and B: ";
int a, b;
cin >> a >> b;
- cout << "A + B = " << a + b;
+ cout << "A + B = " << a + b << '\n'
+ << "A - B = " << a-b << '\n';
return 0;
}
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline
038615f (HEAD -> main) code: добавлен вывод разности
4002dc2 code: добавлен вывод суммы
2d3889d build: добавлен файл проекта
bf0b295 code: заготовка программы
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git show 038615f
commit 038615f801a06bf6bf7dff32a906c5e23e017af4
Author: Alice (KrivobokovNS) <KrivobokovNS@mpei.ru>
Date: Sun Apr 27 17:44:10 2025 +0300
code: добавлен вывод разности
diff --git a/main.cpp b/main.cpp
index b4392ec..c486466 100644
--- a/main.cpp
+++ b/main.cpp
@ -3,6 +3,7 @@
int main () {
cout << "Enter A and B: ";
int a, b;
cin >> a >> b;
- cout << "A + B = " << a + b;
+ cout << "A + B = " << a + b << '\n'
+ << "A - B = " << a-b << '\n';
return 0;
}
__________________________________________________________________________________
10.Добавил печать произведения чисел и просмотрел изменения в рабочей копии
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add -u
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: добавлен вывод произведения'
[main bb26101] code: добавлен вывод произведения
2 files changed, 4 insertions(+), 2 deletions(-)
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff
diff --git a/main.cpp b/main.cpp
index 3b0a2eb..dc88e77 100644
--- a/main.cpp
+++ b/main.cpp
@@ -9,6 +9,6 @@ int main()
cin >> a >> b;
cout << "A + B = " << a + b << '\n'
<< "A - B = " << a - b << '\n';
- << "A * B = " << a * b << '\n';
+ << "A * B = " << a * b << '\n';
}
Предпоследняя строчка была выдела зелёным цветом, что показывает её как добавленную
10.1 Просмотрел разницу между самым первым коммитом и коммитом, добавляющим вывод разности
$ git diff HEAD~5 HEAD~8
diff --git a/main.cpp b/main.cpp
index 48bb4d6..8b13789 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,9 +1 @@
-#include <iostream>
-int main () {
- cout << "Enter A and B: ";
- int a, b;
- cin >> a >> b;
- cout << "A + B = " << a + b << '\n'
- << "A - B = " << a-b << '\n';
- return 0;
-}
+
diff --git a/project.cbp b/project.cbp
deleted file mode 100644
index 84bd34a..0000000
--- a/project.cbp
+++ /dev/null
@@ -1,38 +0,0 @@
______________________________________________________________________
11.1 Создал пару ключей, запустил клиент, загрузил ключ (история данных команд утеряна)
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ ssh-keygen
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ eval $(ssh-agent -s)
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ ssh-add
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ cat ~/.ssh/id_ed25519.pub
11.2 Создал репозитраий под названием cs-lab02
_______________________________________________________________________
12 Клонировал проект в каталог bob
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git init
Reinitialized existing Git repository in C:\Users\kolya\Desktop\lab02\alice\project\.git
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob
$ git clone origin git@uit.mpei.ru:KrivobokovNS/cs-lab02.git project
Cloning into 'project'...
remote: Enumerating objects: 18, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 18 (delta 2), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (18/18), done.
Resolving deltas: 100% (2/2), done.
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob
$ cd project
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.name 'Bob (KrivobokovNS)'
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.email 'KrivobokovNS@mpei.ru'
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m 'code: добавлен вывод произведения'
[main a7aa100] code: добавлен вывод произведения
1 file changed, 2 insertion(+), 1 deletion(-)
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 20 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 542 bytes | 542.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/KrivobokovNS/cs-lab02.git
f06184c..37a1e7a main -> main
___________________________________________________________________
13 На машине Алисы выполнил загрузку изменений
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git fetch
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), 522 bytes | 43.00 KiB/s, done.
From http://uit.mpei.ru/git/KrivobokovNS/cs-lab02
f06184c..37a1e7a main -> origin/main
13.1 Убедился, что в рабочей копии изменений не произошло
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* f06184c (origin/main, origin/HEAD) code: добавлен вывод произведения
* 038615f code: добавлен вывод разности
* 4002dc2 code: добавлен вывод суммы
* 2d3889d build: добавлен файл проекта
* bf0b295 code: заготовка программы
13.2 Продвинул ветку main к скачанной версии
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git pull --ff-only
Updating f06184c..37a1e7a
Fast-forward
13.3 От имени Алисы добавил печать деления, сделал коммит и отправил его на сервер и получил новую версию на машине Боба
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: добавлен вывод частного'
[main 13d6b0c] code: добавлен вывод частного
1 file changed, 1 insertion(+), 1 deletion(-)
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 20 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 356 bytes | 356.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/KrivobokovNS/cs-lab02.git
13d6b0c..e976796 main -> main
_______________________________________________________________________
14 Сделал поиск максимума у Алисы и минимума у Боба
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: Добавлен вывод максимума'
[main e9b63fb] code: Добавлен вывод максимума
1 file changed, 6 insertions(+)
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 20 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 391 bytes | 391.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/KrivobokovNS/cs-lab02.git
e9b63fb..a326ffd main -> main
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m 'code: Добавлен вывод минимума'
[main 70d6c8e] code: Добавлен вывод минимума
1 file changed, 9 insertions(+)
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
To uit.mpei.ru:KrivobokovNS/cs-lab02.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'uit.mpei.ru:KrivobokovNS/cs-lab02.git'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Появление ошибки
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/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 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 513 bytes | 64.00 KiB/s, done.
From uit.mpei.ru:KrivobokovNS/cs-lab02
13d6b0c..e9b63fb main -> origin/main
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorare --all --graph
fatal: unrecognized argument: --decorare
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 70d6c8e (HEAD -> main) code: Добавлен вывод минимума
| * e9b63fb (origin/main, origin/HEAD) code: Добавлен вывод максимума
|/
* 13d6b0c code: добавлен вывод частного
* f06184c code: добавлен вывод произведения
* 038615f code: добавлен вывод разности
* 4002dc2 code: добавлен вывод суммы
* 2d3889d build: добавлен файл проекта
* bf0b295 code: заготовка программы
14.1 Переместил коммит Боба поверх коммита Алисы
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git rebase origin/main
Auto-merging main.cpp
CONFLICT (content): Merge conflict in main.cpp
error: could not apply 33f8fee... code: Добавлен вывод минимума
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", 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 --
hint: Disable this message with "git config set advice.mergeConflict false"
Could not apply 33f8fee... code: Добавлен вывод минимума
удалил пометки конфликта и отредактировал код, чтобы он включал правки и Алисы, и Боба. |
git add main.cpp | данная часть утеряна, поэтому указаны только используемые команды и действия.
git rebase --continue |
[detached HEAD 33f8fee] code: Добавлен вывод минимума
1 file changed, 19 insertions(+), 7 deletions(-)
Successfully rebased and updated refs/heads/main.
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 33f8fee (HEAD -> main) code: Добавлен вывод минимума
* e9b63fb (origin/main, origin/HEAD) code: Добавлен вывод максимума
* 13d6b0c code: добавлен вывод частного
* f06184c code: добавлен вывод произведения
* 038615f code: добавлен вывод разности
* 4002dc2 code: добавлен вывод суммы
* 2d3889d build: добавлен файл проекта
* bf0b295 code: заготовка программы
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp
kolya@Nikolay MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 16 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 576 bytes | 576.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:KrivobokovNS/cs-lab02.git
e9b63fb..33f8fee main -> main
На машине Алисы:
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project ((33f8fee...))
$ git branch double
fatal: a branch named 'double' already exists
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project ((33f8fee...))
$ git checkout double
Previous HEAD position was 33f8fee code: Добавлен вывод минимума
Switched to branch 'double'
Изменил тип переменных в коде
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (double)
$ git add main.cpp
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (double)
$ git commit -m 'code: Изменён тип переменных'
[main 20dc1e5] code: Изменён тип переменных
1 file changed, 5 insertions(+), 4 deletions(-)
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (double)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
kolya@Nikolay MINGW64 ~/Desktop/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 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 556 bytes | 69.00 KiB/s, done.
From uit.mpei.ru:KrivobokovNS/cs-lab02
e9b63fb..33f8fee main -> origin/main
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git pull
Updating e9b63fb..33f8fee
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 6d0fc52 Merge branch 'double'
|\
| * 20dc1e5 (double) Изменён тип переменных
* | 33f8fee (origin/main, origin/HEAD) code: Добавлен вывод минимума
|/
* e9b63fb code: Добавлен вывод максимума
* 13d6b0c code: добавлен вывод частного
* f06184c code: добавлен вывод произведения
* 038615f code: добавлен вывод разности
* 4002dc2 code: добавлен вывод суммы
* 2d3889d build: добавлен файл проекта
* bf0b295 code: заготовка программы
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add .gitignore
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'Build: добавлен gitignore'
[main 201bfef] Build: добавлен gitignore
1 file changed, 2 insertions(+)
create mode 100644 .gitignore
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Your branch is ahead of 'origin/main' by 3 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 201bfef (HEAD -> main) Build: добавлен gitignore
* 6d0fc52 Merge branch 'double'
|\
| * 20dc1e5 (double) Изменён тип переменных
* | 33f8fee (origin/main, origin/HEAD) code: Добавлен вывод минимума
|/
* e9b63fb code: Добавлен вывод максимума
* 13d6b0c code: добавлен вывод частного
* f06184c code: добавлен вывод произведения
* 038615f code: добавлен вывод разности
* 4002dc2 code: добавлен вывод суммы
* 2d3889d build: добавлен файл проекта
* bf0b295 code: заготовка программы
kolya@Nikolay MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 16 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (9/9), 1.07 KiB | 1.07 MiB/s, done.
Total 9 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:KrivobokovNS/cs-lab02.git
33f8fee..201bfef main -> main
Загрузка…
Отмена
Сохранить