Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
TarasovYY 7250e4c7f0
Загрузил(а) файлы в ''
2 недель назад
.gitignore git: игнорирование файлов 3 недель назад
README.txt Загрузил(а) файлы в '' 2 недель назад
main.cpp #code: слияние веток 2 недель назад
project.cbp build: добавлен файл проекта 3 недель назад

README.txt

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

Отчет по лабораторной работе № 2 "Система контроля версий Git"


Выполнил: Тарасов Е. Е.
Группа: А-03-24
Проверил:

Примечание: работа выполнялась на Windows.

1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$

2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ ls

3. Создал каталоги Алисы и Боба, создал каталог "project",
изучил команду "cd" в процессе:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ mkdir alice

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ mkdir bob

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd alice

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ mkdir project

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project
$ cd ..

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project

4. Инициализировал репозитарий и поменял название ветки с master на main:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/jonny-junior/Desktop/lab02/alice/pr
oject/.git/

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (master)
$ git branch -m main

4.1. Посмотрел что находится в каталоге .git:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ ls -A
.git/

4.2. Настроил репозитарий Алисы, чтобы коммиты были от её имени, а также указал свои данные(имя и почта):

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git config user.name 'Alice (TarasovEE)'

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git config user.email 'TarasovYY@mpei.ru'

5. Создал проекты в CodeBlocks и коммиты, проверил каталог .git/ и другие файлы в папке project:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ ls -A
.git/ bin/ main.cpp obj/ project.cbp

6. Занёс файлы под контроль версий:

6.1 Проверил состояние рабочей версии:

$ git status
On branch main

No commits yet

Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
main.cpp
obj/
project.cbp

nothing added to commit but untracked files present (use "git add" to track)

Все файлы в папке project не отслеживаются Git.

6.2. Занёс файл под Git:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp

6.3. Проверил состояние рабочей копии:

jonny-junior@DESKTOP-HPH6RBV 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)
bin/
obj/
project.cbp

Среди коммитов начал отслеживаться файл main.cpp все остальные файлы, по-прежнему, не отслеживаются.

6.4. Вывел сообщение для заднного коммита:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: заготовка программы'
[main (root-commit) 41192cd] code: заготовка программы
1 file changed, 9 insertions(+)
create mode 100644 main.cpp

7. Составил сообщение к коммитам:

7.1. Занёс файл project.cbp под Git и составил к нему сообщение:

jonny-junior@DESKTOP-HPH6RBV 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 touch
es it

Windows вывел сообщение о том, Git хранит этот файл в изменённом виде.

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'build: добавлен файл проекта'
[main 0f9ebab] build: добавлен файл проекта
1 file changed, 40 insertions(+)
create mode 100644 project.cbp

7.2. Проверил состояние рабочей копии:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
obj/

nothing added to commit but untracked files present (use "git add" to track)

На данный момент Git не отслеживает только 2 папки: bin/ и obj/.

8. Создал коммиты с изменениями:

8.1. Проверил состояние репозитория после изменения файла:

jonny-junior@DESKTOP-HPH6RBV 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

Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
obj/
project.depend
project.layout

no changes added to commit (use "git add" and/or "git commit -a")

Git вывел, что файл main.cpp был изменён и нужно закоммитить изменения.

8.2. Закоммитил изменения в файле тремя способами:

8.2.1. 1 способ:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен ввод и вывод a и b"
[main 22c9b94] code: добавлен ввод и вывод a и b
1 file changed, 3 insertions(+), 2 deletions(-)

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод суммы a и b"
[main 631ff69] code: добавлен вывод суммы a и b
1 file changed, 1 insertion(+)

8.2.2. 2 способ:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add -u

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод разности a и b"
[main 0b83a40] code: добавлен вывод разности a и b
1 file changed, 1 insertion(+)

8.2.3. 3 способ:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -a -m "code: добавлен вывод разности a и b"
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
obj/
project.depend
project.layout

nothing added to commit but untracked files present (use "git add" to track)

Во время использования 3 способа я не вносил никаких изменений, так как это не трбовалось в лабораторной.

9. Игнорирование файлов:

9.1. Проверил состояние репозитория после создания файла .gitignore и внесения туда папки bin:

jonny-junior@DESKTOP-HPH6RBV 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
obj/
project.depend
project.layout

nothing added to commit but untracked files present (use "git add" to track)

Файл bin отсутствует в списке неотслоеживаемых, вместо него появился файл gitignore.

9.2. Проверил состояние репозитоия после внесения в gitignore файлов obj и *.layout:

jonny-junior@DESKTOP-HPH6RBV 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.depend

nothing added to commit but untracked files present (use "git add" to track)

Остались только два файла.

9.3. Создал коммит с gitignore и проверил репозитарий после этого:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add .gitignore

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'git: игнорирование файлов'
[main 88be7b4] git: игнорирование файлов
1 file changed, 3 insertions(+)
create mode 100644 .gitignore

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
project.depend

nothing added to commit but untracked files present (use "git add" to track)

10. Просмотрел историю:

10.1. Открыл журнал репозитария:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log
commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (HEAD -> main)
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 15:00:44 2025 +0300

git: игнорирование файлов

commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:39:48 2025 +0300

code: добавлен вывод разности a и b

commit 631ff69bda317d762f70971303beff1e2b75c1e9
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:34:35 2025 +0300

code: добавлен вывод суммы a и b

commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:25:02 2025 +0300

code: добавлен ввод и вывод a и b

10.2. Посмотрел файлы, изменённые в коммитах:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --stat
commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (HEAD -> main)
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 15:00:44 2025 +0300

git: игнорирование файлов

.gitignore | 3 +++
1 file changed, 3 insertions(+)

commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:39:48 2025 +0300

code: добавлен вывод разности a и b

main.cpp | 1 +
1 file changed, 1 insertion(+)

commit 631ff69bda317d762f70971303beff1e2b75c1e9
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:34:35 2025 +0300

code: добавлен вывод суммы a и b

10.3. Посмотрел коммиты компактно:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate
88be7b4 (HEAD -> main) git: игнорирование файлов
0b83a40 code: добавлен вывод разности a и b
631ff69 code: добавлен вывод суммы a и b
22c9b94 code: добавлен ввод и вывод a и b
0f9ebab build: добавлен файл проекта
41192cd code: заготовка программы

10.4. Посмотрел коммиты для всех веток:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 88be7b4 (HEAD -> main) git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы

10.5. Посмотрел коммиты, связанные с main.cpp:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log -- main.cpp
commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:39:48 2025 +0300

code: добавлен вывод разности a и b

commit 631ff69bda317d762f70971303beff1e2b75c1e9
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:34:35 2025 +0300

code: добавлен вывод суммы a и b

commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:25:02 2025 +0300

code: добавлен ввод и вывод a и b

commit 41192cddf652cbda07756d971ae8cac2bb021bb5
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sat Apr 5 18:01:31 2025 +0300

code: заготовка программы

10.6. Посмотрел коммиты с "code" в сообщении:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --grep "code:"
commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:39:48 2025 +0300

code: добавлен вывод разности a и b

commit 631ff69bda317d762f70971303beff1e2b75c1e9
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:34:35 2025 +0300

code: добавлен вывод суммы a и b

commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:25:02 2025 +0300

code: добавлен ввод и вывод a и b

commit 41192cddf652cbda07756d971ae8cac2bb021bb5
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sat Apr 5 18:01:31 2025 +0300

code: заготовка программы

10.6. Посмторел поледний коммит:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git show HEAD
commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (HEAD -> main)
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 15:00:44 2025 +0300

git: игнорирование файлов

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d85abef
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/bin
+/obj
+/*.layout

10.7. Внёс изменения в последний коммит, и посмторел их:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff
diff --git a/main.cpp b/main.cpp
index e84d77b..8d75565 100644
--- a/main.cpp
+++ b/main.cpp
@@ -9,4 +9,5 @@ int main()
cin >> a >> b;
cout << "A + B = " << a + b << '\n';
cout << "A - B = " << a - b << '\n';
+ cout << "A * B = " << a * b << '\n';
}

10.8. Посмотрел изменения между первым и последним коммитом:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff HEAD~5 HEAD
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d85abef
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/bin
+/obj
+/*.layout
diff --git a/main.cpp b/main.cpp
index b4392ec..e84d77b 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,6 +4,9 @@ using namespace std;

int main()
{
- cout << "Hello world!" << endl;
- return 0;
+ cout << "Enter A and B: ";
+ int a, b;
+ cin >> a >> b;
+ cout << "A + B = " << a + b << '\n';
+ cout << "A - B = " << a - b << '\n';
}

10.9. Закоммитил вывод произведения:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод суммы a и b"
[main a3b52ea] code: добавлен вывод суммы a и b
1 file changed, 1 insertion(+)

10.10. Откатил изменения и потом вернул их:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at 88be7b4 git: игнорирование файлов

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git checkout HEAD -- main.cpp

11. Отпарвка проекта на сервер:

11.1. Создал ключ:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/jonny-junior/.ssh/id_ed25519):
Enter passphrase for "/c/Users/jonny-junior/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/jonny-junior/.ssh/id_ed25519
Your public key has been saved in /c/Users/jonny-junior/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:Wf67BiCbAaN+EPe47aY0c/pRgFDn39cP9UIcHG093mY jonny-junior@DESKTOP-HPH6RBV
The key's randomart image is:
+--[ED25519 256]--+
| ... . .oo.|
| ..++ ..o+|
| +.=o . +.+|
| o . +o.= o oE|
| . . o =S.o . +o.|
| . o +. .o + |
| .+.o .. .|
| . =o. .. |
| o+. .o. |
+----[SHA256]-----+

11.2. Запустил агент и загрузил ключ:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ eval $(ssh-agent -s)
Agent pid 2004

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ ssh-add
Enter passphrase for /c/Users/jonny-junior/.ssh/id_ed25519:
Identity added: /c/Users/jonny-junior/.ssh/id_ed25519 (jonny-junior@DESKTOP-HPH6RBV)

11.3. Отобразил для проверки открытый ключ:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEhmtVfaNrRl2RQcfj1yfK9qV4fuIhfpyxzQn+tE3P6N jonny-junior@DESKTOP-HPH6RBV

11.4. Отправил проект на сервер:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git remote add origin git@uit.mpei.ru:TarasovYY/cs-lab02.git

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/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: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 4 threads
Compressing objects: 100% (16/16), done.
Writing objects: 100% (18/18), 2.35 KiB | 401.00 KiB/s, done.
Total 18 (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:TarasovYY/cs-lab02.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.

11.5. Получил адрес и каталог:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git remote -v
origin git@uit.mpei.ru:TarasovYY/cs-lab02.git (fetch)
origin git@uit.mpei.ru:TarasovYY/cs-lab02.git (push)

Необходимо было получить их, так как заранее я их не знал.

11.6. Перешёл в каталог Боба и получил проект с сервера:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ cd ..

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd ..

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd bob

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ git clone git@uit.mpei.ru:TarasovYY/cs-lab02.git project
Cloning into 'project'...
remote: Enumerating objects: 18, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (16/16), 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.

11.7. Перешёл в каталог project и настроил Git Боба:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ cd project

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.name 'Bob (TarasovEE)'

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.email 'TarasovYY@mpei.ru'

11.8. От лица Боба добавил изменения в файл(вывод произведения) и закоммитил их:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m "code: добавлен вывод произведения a и b"
[main 130ff05] code: добавлен вывод произведения a и b
1 file changed, 1 insertion(+)

11.9. Прверил, что изменения были именно от лица Боба:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --stat
commit 130ff0511696137c69cd5b57ada65544f31c8651 (HEAD -> main)
Author: Bob (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 13 21:09:39 2025 +0300

code: добавлен вывод произведения a и b

main.cpp | 1 +
1 file changed, 1 insertion(+)

commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (origin/main, origin/HEAD)
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 15:00:44 2025 +0300

git: игнорирование файлов

.gitignore | 3 +++
1 file changed, 3 insertions(+)

commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:39:48 2025 +0300

code: добавлен вывод разности a и b

12. Совместная работа над проектом без конфликтов и правок:

12.1. Отправил коммит Боба на сервер:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 435 bytes | 435.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:TarasovYY/cs-lab02.git
88be7b4..130ff05 main -> main

12.2. Перешёл в каталог Алисы и загрузил изменения:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ cd ..

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ cd ..

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd alice

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project

jonny-junior@DESKTOP-HPH6RBV 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 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 415 bytes | 6.00 KiB/s, done.
From uit.mpei.ru:TarasovYY/cs-lab02
88be7b4..130ff05 main -> origin/main

12.3. Проверил на соответствие рабочие копии Алисы и Боба:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 130ff05 (origin/main, origin/HEAD) code: добавлен вывод произведения a и
b
* 88be7b4 (HEAD -> main) git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы

Ветка main отстаёт от ветки origin/main на один коммит.

12.4. Продвинул ветку на один коммит:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git pull --ff-only
Updating 88be7b4..130ff05
Fast-forward
main.cpp | 1 +
1 file changed, 1 insertion(+)

Ещё раз проверил истрию веток:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 130ff05 (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод пр
оизведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы

Теперь ветка не отстаёт.

12.5. Добавил изменения(вывод деления) и закоммитил их:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод деления a и b"
[main 1a0469d] code: добавлен вывод деления a и b
1 file changed, 1 insertion(+)
12.6. Снова проверил историю ветки:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 1a0469d (HEAD -> main) code: добавлен вывод деления a и b
* 130ff05 (origin/main, origin/HEAD) code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы

origin/main отстаёт от main.

12.7. Загрузил изменеия на сервер:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 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 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:TarasovYY/cs-lab02.git
130ff05..1a0469d main -> main

12.8. Зашёл в каталог Боба и загрузил изменеия с сервера:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ cd ..

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd ..

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd bob

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ cd project

jonny-junior@DESKTOP-HPH6RBV 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 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 401 bytes | 3.00 KiB/s, done.
From uit.mpei.ru:TarasovYY/cs-lab02
130ff05..1a0469d main -> origin/main

12.9. Проверил историю веток:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 1a0469d (origin/main, origin/HEAD) code: добавлен вывод деления a и b
* 130ff05 (HEAD -> main) code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы

Ветка main отстаёт от ветки origin/main.

12.10. Продвинул ветку и проверил историю:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git pull --ff-only
Updating 130ff05..1a0469d
Fast-forward
main.cpp | 1 +
1 file changed, 1 insertion(+)

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 1a0469d (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод деления a и b
* 130ff05 code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы

Теперь положения веток совпадают.

13. Разрешение конфликтов правок при совместной работе:

13.1. Перешёл в каталог Алисы и добавил вывод максимума и отправил его на сервер:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd alice

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод максимума"
[main 9e7f23c] code: добавлен вывод максимума
1 file changed, 4 insertions(+)

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 447 bytes | 223.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:TarasovYY/cs-lab02.git
1a0469d..9e7f23c main -> main

13.2. Добавил переход на следующую строку:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd alice

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод максимума и переход на следущую строку"
[main febb8eb] code: добавлен вывод максимума и переход на следущую строку
1 file changed, 2 insertions(+), 2 deletions(-)

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 446 bytes | 446.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:TarasovYY/cs-lab02.git
9e7f23c..febb8eb main -> main

13.3. Перешёл в каталог Боба и добавил вывод минимума, после чего отправил его на сервер:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ cd ..

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd ..

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd bob

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ cd project

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m "code: добавлен вывод минимума"
[main f992b5a] code: добавлен вывод минимума
1 file changed, 4 insertions(+)

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
To uit.mpei.ru:TarasovYY/cs-lab02.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'uit.mpei.ru:TarasovYY/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.

Из-за расхождения версий Алисы и Боба, это не удалось сделать.

13.3. От лица Боба загрузил коммиты:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git fetch
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), 818 bytes | 2.00 KiB/s, done.
From uit.mpei.ru:TarasovYY/cs-lab02
1a0469d..febb8eb main -> origin/main

13.4. Попытался перенести коммит Боба вверх:

jonny-junior@DESKTOP-HPH6RBV 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 f992b5a... 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 --
abort".
hint: Disable this message with "git config set advice.mergeConflict false"
Could not apply f992b5a... code: добавлен вывод минимума

Не удалось это сделать, так как версия Боба расходится с версией Алисы:

13.5. Изменил код и закоммитил его, после чего продолжил перемещение:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m "code: добавлен вывод минимума и максимума"
[detached HEAD b17bfa6] code: добавлен вывод минимума и максимума
1 file changed, 4 insertions(+)

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
$ git rebase --continue
Successfully rebased and updated refs/heads/main.

13.6. отправил изменения на сервер:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 434 bytes | 434.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:TarasovYY/cs-lab02.git
febb8eb..b17bfa6 main -> main

13.7. Посмотрел историю веток:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* b17bfa6 (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод минимума
и максимума
* febb8eb code: добавлен вывод максимума и переход на следущую строку
* 9e7f23c code: добавлен вывод максимума
* 1a0469d code: добавлен вывод деления a и b
* 130ff05 code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы

14. Оспользование веток:

14.1. Перешёл в каталог Алисы, добавил ветку double и переключился на неё:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ cd ..

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ cd ..

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd alice

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git branch double

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'

14.2. Закоммитил изменения целочисленного типа на вещественный:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (double)
$ git add main.cpp

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (double)
$ git commit -m "code: тип переменных изменён на вещественный"
[double 58b7444] code: тип переменных изменён на вещественный
1 file changed, 1 insertion(+), 1 deletion(-)

14.3. Переключился на ветку main и проверил историю веток:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (double)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 58b7444 (double) code: тип переменных изменён на вещественный
* febb8eb (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод максимум
а и переход на следущую строку
* 9e7f23c code: добавлен вывод максимума
* 1a0469d code: добавлен вывод деления a и b
* 130ff05 code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы

Ветки расходятся.

14.4. Слил веткку double c main:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git merge double
Updating febb8eb..58b7444
Fast-forward
main.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main|MERGING)
$ git log --oneline --decorate --all --graph
* 58b7444 (HEAD -> main, double) code: тип переменных изменён на вещественный
| * b17bfa6 (origin/main, origin/HEAD) code: добавлен вывод минимума и максимума
|/
* febb8eb code: добавлен вывод максимума и переход на следущую строку
* 9e7f23c code: добавлен вывод максимума
* 1a0469d code: добавлен вывод деления a и b
* 130ff05 code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы

14.5. Создал коммит и отправил его на сервер:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main|MERGING)
$ git add main.cpp

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main|MERGING)
$ git commit -m "#code: слияние веток"
[main 7ff6a9d] #code: слияние веток

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 4 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 778 bytes | 778.00 KiB/s, done.
Total 6 (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:TarasovYY/cs-lab02.git
b17bfa6..7ff6a9d main -> main

14.6. Проверил историю веток:

jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 7ff6a9d (HEAD -> main, origin/main, origin/HEAD) #code: слияние веток
|\
| * b17bfa6 code: добавлен вывод минимума и максимума
* | 58b7444 (double) code: тип переменных изменён на вещественный
|/
* febb8eb code: добавлен вывод максимума и переход на следущую строку
* 9e7f23c code: добавлен вывод максимума
* 1a0469d code: добавлен вывод деления a и b
* 130ff05 code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы

Всё сошлось.