1160 строки
50 KiB
Markdown
1160 строки
50 KiB
Markdown
# Отчёт по лабораторной работе №2 "Применение системы контроля версий в Git" #
|
|
## Вход в терминал и создание структуры каталогов ##
|
|
|
|
Создаю каталог lab02 для данной ЛР и запускаю в нём Git Bash. Вижу приглашение, указывающее путь к рабочему каталогу и символ $:
|
|
```
|
|
/d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02
|
|
$
|
|
```
|
|
|
|
Создаю папки lab02/alice и lab02/bob, имитирующие компьютеры Алисы и Боба:
|
|
```
|
|
mkdir alice
|
|
mkdir bob
|
|
```
|
|
|
|
Создаю на компьютере Алисы каталог Project и перехожу в него
|
|
```
|
|
$ cd alice
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice
|
|
$ mkdir project
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice
|
|
$ cd project
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project
|
|
```
|
|
|
|
Поднимаюсь на уровень выше и возвращаюсь в Project
|
|
```
|
|
$ cd ..
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice
|
|
$ cd project
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project
|
|
```
|
|
|
|
## Инициализация репозитария и настройка Git ##
|
|
Инициализирую репозитарий в текущем каталоге project (при установке Git был настроен так, чтобы ветка по умолчанию нахывалась main):
|
|
```
|
|
$ git init
|
|
Initialized empty Git repository in D:/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project/.git/
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
|
|
Настройка репозитария Алисы
|
|
```
|
|
$ git config user.name 'Alice (BadaninaSP)'
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git config user.email 'BadaninaSP@mpei.ru'
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
|
|
## Создание коммитов ##
|
|
Запускаю CodeBlocks и создаю проект в репозитарии Алисы:
|
|
*Project title: project
|
|
*Folder to create project in: C:\Users\user\Desktop\lab02\alice
|
|
*Project filename: project.cbp
|
|
*Resulting filename:
|
|
*C:\Users\user\Desktop\lab02\alice\project\project.cbp
|
|
|
|
После сборки проекта получена нужная структура файлов и каталогов.
|
|
|
|
## Занесение файлов под контроль версий ##
|
|
Просмотр состояния рабочей копии
|
|
```
|
|
$ 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
|
|
project.depend
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
|
|
```
|
|
В ветке main нет коммитов, папки bin/, obj/ и файлы main.c, project.cbp, project.depend не отслеживаются.
|
|
|
|
Добавляю main.cpp в индекс
|
|
```
|
|
$ git add main.cpp
|
|
```
|
|
|
|
Снова смотрю состояние рабочей копии
|
|
```
|
|
$ 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
|
|
project.depend
|
|
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
В очередной коммит войдёт только файл main.cpp, остальные файлы и папки не отслеживаются.
|
|
|
|
Делаю коммит с этим файлом
|
|
```
|
|
$ git commit -m 'code: заготовка программы'
|
|
[main (root-commit) 0cda65b] code: заготовка программы
|
|
1 file changed, 9 insertions(+)
|
|
create mode 100644 main.cpp
|
|
```
|
|
## Составление сообщений к коммитам ##
|
|
Добавляю файл проекта в индекс
|
|
```
|
|
$ git add project.cbp
|
|
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
Changes to be committed:
|
|
(use "git restore --staged <file>..." to unstage)
|
|
new file: project.cbp
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
bin/
|
|
obj/
|
|
project.depend
|
|
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
и делаю коммит с ним
|
|
```
|
|
$ git commit -m 'build: добавлен файл проекта'
|
|
[main fab7219] build: добавлен файл проекта
|
|
1 file changed, 40 insertions(+)
|
|
create mode 100644 project.cbp
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
## Создание коммитов с изменениями ##
|
|
1. Состояние рабочей копии до изменения main.cpp
|
|
```
|
|
$ git status
|
|
On branch main
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
bin/
|
|
obj/
|
|
project.depend
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Заменяю содержимое функции main():
|
|
```
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
```
|
|
|
|
После изменения main.cpp Git отображает наличие изменений в файле main.cpp, которые не выставлены на коммит
|
|
```
|
|
$ 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
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Делаю коммит с обновлённым файлом
|
|
```
|
|
$ git add main.cpp
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git commit -m 'code: добавлен ввод двух чисел'
|
|
[main fca14d8] code: добавлен ввод двух чисел
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
|
|
2. Добавляю в программу вывод суммы a и b, дописав в конце main() строку
|
|
```cout << "A + B = " << a + b;```
|
|
и снова делаю коммит
|
|
```
|
|
$ git add -u
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
Changes to be committed:
|
|
(use "git restore --staged <file>..." to unstage)
|
|
modified: main.cpp
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
bin/
|
|
obj/
|
|
project.depend
|
|
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git commit -m 'code: добавлен вывод суммы a и b'
|
|
[main da84366] code: добавлен вывод суммы a и b
|
|
1 file changed, 1 insertion(+)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
|
|
3. Добавляю в программу вывод разности a и b, изменив инструкцию cout в main():
|
|
```
|
|
cout << "A + B = " << a + b << '\n'
|
|
<< "A - B = " << a - b << '\n';
|
|
```
|
|
и делаю коммит
|
|
```
|
|
$ git commit -a -m 'code: добавлен вывод разности a и b'
|
|
[main 703d751] code: добавлен вывод разности a и b
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
## Игнорирование файлов ##
|
|
Создаю файл .gitignore, в котором указываю файлы, которые не нуждаются в контроле версий и должны игнорироваться:
|
|
```
|
|
/bin
|
|
/obj
|
|
*.layout
|
|
project.depend
|
|
```
|
|
|
|
Теперь эти файлы не отображаются как неотслеживаемые и просто игнорируются:
|
|
```
|
|
$ git status
|
|
On branch main
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
.gitignore
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
|
|
Создаю коммит с .gitignore
|
|
```
|
|
$ git add .gitignore
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git commit -m 'git: добавлен .gitignore'
|
|
[main 59cb19c] git: добавлен .gitignore
|
|
1 file changed, 4 insertions(+)
|
|
create mode 100644 .gitignore
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
## Просмотр истории ##
|
|
### Работа с журналом репозитария ###
|
|
Вывод команды git log --stat для последнего коммита:
|
|
```
|
|
$ git log --stat
|
|
commit 59cb19c306ff2257f830406d60ad1fc785c88c33 (HEAD -> main)
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Mon Feb 2 01:25:04 2026 +0400
|
|
|
|
git: добавлен .gitignore
|
|
|
|
.gitignore | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
```
|
|
Первая строка - хэш текущего коммита и указание на ветку, в которой он находится.
|
|
Вторая строка - автор коммита (здесь это Алиса).
|
|
Третья строка - дата и время, когда совершён коммит.
|
|
Четвёртая строка - заголовок коммита.
|
|
Пятая строка - имя изменённого файла и количество изменений.
|
|
Шестая строка - один файл изменён, 4 вставки.
|
|
|
|
Вывод коммитов по теме build:
|
|
```
|
|
$ git log --grep "build:"
|
|
commit fab7219f8b1c6faf26857c85e61a86f759905b87
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Sun Feb 1 02:03:46 2026 +0400
|
|
|
|
build: добавлен файл проекта
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
|
|
Вывод коммитов, затрагивающих project.cbp:
|
|
```
|
|
$ git log -- project.cbp
|
|
commit fab7219f8b1c6faf26857c85e61a86f759905b87
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Sun Feb 1 02:03:46 2026 +0400
|
|
|
|
build: добавлен файл проекта
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
### Просмотр коммитов ###
|
|
Просмотр предпоследнего коммита
|
|
```
|
|
$ git show HEAD~1
|
|
commit 703d7515ac3c339930c278c035cbfb96bb5a65f1
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Mon Feb 2 01:15:24 2026 +0400
|
|
|
|
code: добавлен вывод разности a и b
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 4364dbc..65442c3 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,5 +7,6 @@ int main()
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
- cout << "A + B = " << a + b << '\n';
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
}
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
### Просмотр изменений ###
|
|
Добавляю в программу вывод произведения a и b, изменив инструкцию cout в main():
|
|
```
|
|
cout << "A + B = " << a + b << '\n'
|
|
<< "A - B = " << a - b << '\n'
|
|
<< "A * B = " << a * b << '\n';
|
|
```
|
|
коммит пока не делаю.
|
|
|
|
Просматриваю изменения в рабочей копии:
|
|
```
|
|
$ git diff
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 65442c3..f94f092 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -8,5 +8,6 @@ int main()
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
- << "A - B = " << a - b << '\n';
|
|
+ << "A - B = " << a - b << '\n'
|
|
+ << "A * B = " << a * b << '\n';
|
|
}
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Первая строка вывода - заголовок, сравниваются две версии одного файла: a/ - версия до изменений (в последнем коммите) и b/ - версия после изменений (в рабочей директории).
|
|
Вторая строка - хэши файлов (blob-объектов, 65442c3 - старый файл из предыдущего коммита, f94f092 - новый файл в рабочей директории) и режим доступа к этим файлам.
|
|
Третья строка - имя старой версии файла.
|
|
Четвёртая строка - имя новой версии файла.
|
|
Пятая строка - диапазон выведенных строк: начиная с 8-й строки выведены 5 строк старого файла и 6 строк нового файла, нижеприведённый фрагмент находится в функции main.
|
|
Далее - выведены строки с изменениями и строки контекста до и после строк с изменениями (по умолчанию 3).
|
|
|
|
Вывод различий между самым первым и предпоследним коммитом (там где был добавлен вывод разницы между a и b):
|
|
```
|
|
$ git diff HEAD~5 HEAD~1
|
|
diff --git a/main.cpp b/main.cpp
|
|
index b4392ec..65442c3 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'
|
|
+ << "A - B = " << a - b << '\n';
|
|
}
|
|
diff --git a/project.cbp b/project.cbp
|
|
new file mode 100644
|
|
index 0000000..99bb702
|
|
--- /dev/null
|
|
+++ b/project.cbp
|
|
@@ -0,0 +1,40 @@
|
|
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
|
+<CodeBlocks_project_file>
|
|
+ <FileVersion major="1" minor="6" />
|
|
+ <Project>
|
|
+ <Option title="project" />
|
|
+ <Option pch_mode="2" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Build>
|
|
+ <Target title="Debug">
|
|
+ <Option output="bin/Debug/project" prefix_auto="1" extension_auto="1" />
|
|
+ <Option object_output="obj/Debug/" />
|
|
+ <Option type="1" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Compiler>
|
|
+ <Add option="-g" />
|
|
+ </Compiler>
|
|
+ </Target>
|
|
+ <Target title="Release">
|
|
+ <Option output="bin/Release/project" prefix_auto="1" extension_auto="1" />
|
|
+ <Option object_output="obj/Release/" />
|
|
+ <Option type="1" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Compiler>
|
|
+ <Add option="-O2" />
|
|
+ </Compiler>
|
|
+ <Linker>
|
|
+ <Add option="-s" />
|
|
+ </Linker>
|
|
+ </Target>
|
|
+ </Build>
|
|
+ <Compiler>
|
|
+ <Add option="-Wall" />
|
|
+ <Add option="-fexceptions" />
|
|
+ </Compiler>
|
|
+ <Unit filename="main.cpp" />
|
|
+ <Extensions>
|
|
+ <lib_finder disable_auto="1" />
|
|
+ </Extensions>
|
|
+ </Project>
|
|
+</CodeBlocks_project_file>
|
|
```
|
|
Видно, что в файле main.cpp заменено содержимое функции main. Также был добавлен файл project.cbp, выведено его содержимое на экран. Файл .gitignore на этом этапе ещё не создан.
|
|
## Откат изменений ##
|
|
Закоммитила вывод произведения чисел
|
|
```
|
|
$ git status
|
|
On branch main
|
|
Changes to be committed:
|
|
(use "git restore --staged <file>..." to unstage)
|
|
modified: main.cpp
|
|
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git commit -m 'code: добавлен вывод произведения a и b'
|
|
[main a4f0f70] code: добавлен вывод произведения a и b
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
|
|
Отменила этот коммит и вернулась к предыдущему
|
|
```
|
|
$ git reset --hard HEAD~1
|
|
HEAD is now at 59cb19c git: добавлен .gitignore
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Содержимое файла main.cpp вернулось к тому, которое было до внесения изменений.
|
|
|
|
Добавлю перед функцией строку main()
|
|
```
|
|
// you may type whatever you want
|
|
```
|
|
и восстановлю исходное содержимое файла, которое было в последнем коммите
|
|
```
|
|
$ git checkout HEAD -- main.cpp
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Содержимое файла вернулось к исходному.
|
|
|
|
## Обмен кодом через удаленное хранилище ##
|
|
### Настройка SSH ###
|
|
Создаю пару ключей (открытый и закрытый)
|
|
```
|
|
$ ssh-keygen
|
|
Generating public/private ed25519 key pair.
|
|
Enter file in which to save the key (/c/Users/ibada/.ssh/id_ed25519):
|
|
Created directory '/c/Users/ibada/.ssh'.
|
|
Enter passphrase for "/c/Users/ibada/.ssh/id_ed25519" (empty for no passphrase):
|
|
Enter same passphrase again:
|
|
Your identification has been saved in /c/Users/ibada/.ssh/id_ed25519
|
|
Your public key has been saved in /c/Users/ibada/.ssh/id_ed25519.pub
|
|
The key fingerprint is:
|
|
SHA256:Sc1dFrpQOHqeUycF6oRoR0G1JB/ids+0jKXT7DsZQdc ibada@Meouw
|
|
The key's randomart image is:
|
|
+--[ED25519 256]--+
|
|
| .*o+.o.+o |
|
|
| + Oo*.+o E|
|
|
| o *.Xo=o |
|
|
| . +.=.%+o. |
|
|
| So=oO+ |
|
|
| +o. |
|
|
| ..o |
|
|
| o. |
|
|
| .. |
|
|
+----[SHA256]-----+
|
|
```
|
|
Запуск агента для упрощения использования ключа
|
|
```
|
|
$ eval $(ssh-agent -s)
|
|
Agent pid 539
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ ssh-add
|
|
Enter passphrase for /c/Users/ibada/.ssh/id_ed25519:
|
|
Identity added: /c/Users/ibada/.ssh/id_ed25519 (ibada@Meouw)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Получение открытого ключа
|
|
$ cat ~/.ssh/id_ed25519.pub
|
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3mZ2XPvcseBx4hMd7jdwbRhhDWsMfcHYN3n6jWpKjv ibada@Meouw
|
|
|
|
### Отправка проекта на сервер ###
|
|
Создаю на сервере пустой репозитарий под названием cs-lab02 и настраиваю связь с удаленным хранилищем
|
|
```
|
|
$ git remote add origin git@uit.mpei.ru:BadaninaSP/cs-lab02.git
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/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 22 threads
|
|
Compressing objects: 100% (16/16), done.
|
|
Writing objects: 100% (18/18), 2.35 KiB | 1.17 MiB/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:BadaninaSP/cs-lab02.git
|
|
* [new branch] main -> main
|
|
branch 'main' set up to track 'origin/main'.
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
### Получение проекта с сервера ###
|
|
Открываю новый терминал Git Bash в каталоге bob. Клонирую проект
|
|
```
|
|
$ git clone git@uit.mpei.ru:BadaninaSP/cs-lab02.git project
|
|
Cloning into 'project'...
|
|
Enter passphrase for key '/c/Users/ibada/.ssh/id_ed25519':
|
|
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.
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob
|
|
```
|
|
Переход в каталог проекта «на машине Боба»
|
|
```
|
|
$ cd project
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main)
|
|
```
|
|
и настройка его Git
|
|
```
|
|
$ git config user.name 'Bob (BadaninaSP)'
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main)
|
|
$ git config user.email 'BadaninaSP@mpei.ru'
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main)
|
|
```
|
|
## Совместная работа над проектом без конфликтов правок ##
|
|
Добавлю в main.cpp вывод произведения чисел:
|
|
```
|
|
#include <iostream>
|
|
|
|
using namespace std;
|
|
|
|
int main()
|
|
{
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
<< "A - B = " << a - b << '\n'
|
|
<< "A * B = " << a * b << '\n';
|
|
}
|
|
```
|
|
сделаю коммит от имени Боба
|
|
```
|
|
$ git add main.cpp
|
|
$ git commit -m 'code: добавлен вывод произведения a и b'
|
|
[main d3c32a5] code: добавлен вывод произведения a и b
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
```
|
|
Проверка того, что этот коммит сделан от имени Боба:
|
|
```
|
|
$ git log --stat
|
|
commit d3c32a5794c394f82d80104db7916703e4b4244b (HEAD -> main)
|
|
Author: Bob (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Tue Feb 3 23:43:43 2026 +0400
|
|
|
|
code: добавлен вывод произведения a и b
|
|
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
```
|
|
Отправка на сервер
|
|
```
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/ibada/.ssh/id_ed25519':
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 22 threads
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 428 bytes | 428.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:BadaninaSP/cs-lab02.git
|
|
59cb19c..d3c32a5 main -> 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), 408 bytes | 136.00 KiB/s, done.
|
|
From uit.mpei.ru:BadaninaSP/cs-lab02
|
|
59cb19c..d3c32a5 main -> origin/main
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
В рабочей копии изменений ещё не произошло.
|
|
Ветка main отстает на один коммит от ветки origin/main:
|
|
```
|
|
$ git log --oneline
|
|
59cb19c (HEAD -> main) git: добавлен .gitignore
|
|
703d751 code: добавлен вывод разности a и b
|
|
da84366 code: добавлен вывод суммы a и b
|
|
fca14d8 code: добавлен ввод двух чисел
|
|
fab7219 build: добавлен файл проекта
|
|
0cda65b code: заготовка программы
|
|
```
|
|
Продвижение ветки main к скачанной версии
|
|
```
|
|
$ git pull --ff-only
|
|
Updating 59cb19c..d3c32a5
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git log --oneline
|
|
d3c32a5 (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод произведения a и b
|
|
59cb19c git: добавлен .gitignore
|
|
703d751 code: добавлен вывод разности a и b
|
|
da84366 code: добавлен вывод суммы a и b
|
|
fca14d8 code: добавлен ввод двух чисел
|
|
fab7219 build: добавлен файл проекта
|
|
0cda65b code: заготовка программы
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Рабочая копия проекта «у Алисы» соответствует версии «у Боба».
|
|
|
|
Добавление в программу печати деления
|
|
```
|
|
#include <iostream>
|
|
|
|
using namespace std;
|
|
|
|
int main()
|
|
{
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
<< "A - B = " << a - b << '\n'
|
|
<< "A * B = " << a * b << '\n'
|
|
<< "A / B = " << a / b << '\n';
|
|
}
|
|
```
|
|
Коммит этого от имени Алисы
|
|
```
|
|
$ git add main.cpp
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git commit -m 'code: добавлен вывод деления a на b'
|
|
[main 917427b] code: добавлен вывод деления a на b
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Отправка на сервер
|
|
```
|
|
$ git push
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 22 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:BadaninaSP/cs-lab02.git
|
|
d3c32a5..917427b main -> main
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Приём Бобом
|
|
```
|
|
$ git pull --ff-only
|
|
Enter passphrase for key '/c/Users/ibada/.ssh/id_ed25519':
|
|
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 | 44.00 KiB/s, done.
|
|
From uit.mpei.ru:BadaninaSP/cs-lab02
|
|
d3c32a5..917427b main -> origin/main
|
|
Updating d3c32a5..917427b
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main)
|
|
```
|
|
Рабочая копия проекта «у Боба» соответствует версии «у Алисы».
|
|
|
|
## Разрешение конфликтов правок при совместной работе ##
|
|
Алиса дополняет программу печатью максимума
|
|
```
|
|
#include <iostream>
|
|
|
|
using namespace std;
|
|
|
|
int main()
|
|
{
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
<< "A - B = " << a - b << '\n'
|
|
<< "A * B = " << a * b << '\n'
|
|
<< "A / B = " << a / b << '\n'
|
|
<< "max(A, B) = " << max(a, b) << '\n';
|
|
}
|
|
```
|
|
делает коммит и отправляет его на сервер
|
|
```
|
|
$ git add main.cpp
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git commit -m 'code: добавлен вывод максимума'
|
|
[main 8a335dc] code: добавлен вывод максимума
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git push
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 22 threads
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 430 bytes | 430.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:BadaninaSP/cs-lab02.git
|
|
917427b..8a335dc main -> main
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
|
|
Боб дополняет программу печатью минимума
|
|
```
|
|
#include <iostream>
|
|
|
|
using namespace std;
|
|
|
|
int main()
|
|
{
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
<< "A - B = " << a - b << '\n'
|
|
<< "A * B = " << a * b << '\n'
|
|
<< "A / B = " << a / b << '\n'
|
|
<< "min(A, B) = " << min(a, b) << '\n';
|
|
}
|
|
```
|
|
делает коммит
|
|
```
|
|
$ git add main.cpp
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main)
|
|
$ git commit -m 'code: добавлен вывод минимума'
|
|
[main 25a8e7e] code: добавлен вывод минимума
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main)
|
|
```
|
|
и пытается отправить его на сервер
|
|
```
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/ibada/.ssh/id_ed25519':
|
|
To uit.mpei.ru:BadaninaSP/cs-lab02.git
|
|
! [rejected] main -> main (fetch first)
|
|
error: failed to push some refs to 'uit.mpei.ru:BadaninaSP/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.
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main)
|
|
```
|
|
что заканчивается неудачей из-за наличия в удалённом репозитарии изменений, которые отсутствуют в локальном.
|
|
«От лица Боба» загрузим коммиты из удаленного хранилища и отобразим историю всех веток.
|
|
```$ git fetch
|
|
Enter passphrase for key '/c/Users/ibada/.ssh/id_ed25519':
|
|
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), 410 bytes | 45.00 KiB/s, done.
|
|
From uit.mpei.ru:BadaninaSP/cs-lab02
|
|
917427b..8a335dc main -> origin/main
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main)
|
|
$ git log --stat
|
|
commit 8a335dcd242cc24b19edce92f6f5d34284e1e851 (HEAD, origin/main, origin/HEAD)
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Wed Feb 4 01:30:47 2026 +0400
|
|
|
|
code: добавлен вывод максимума
|
|
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
commit 917427b54001612eed18042cab81c877f327c2af
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Wed Feb 4 01:04:41 2026 +0400
|
|
|
|
code: добавлен вывод деления a на b
|
|
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
commit d3c32a5794c394f82d80104db7916703e4b4244b
|
|
Author: Bob (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Tue Feb 3 23:43:43 2026 +0400
|
|
|
|
code: добавлен вывод произведения a и b
|
|
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
commit 59cb19c306ff2257f830406d60ad1fc785c88c33
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Mon Feb 2 01:25:04 2026 +0400
|
|
|
|
git: добавлен .gitignore
|
|
|
|
.gitignore | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
commit 703d7515ac3c339930c278c035cbfb96bb5a65f1
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Mon Feb 2 01:15:24 2026 +0400
|
|
|
|
code: добавлен вывод разности a и b
|
|
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
commit da843664d255aa6bbd04695c8e26b4424f3fcd28
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Mon Feb 2 01:03:41 2026 +0400
|
|
|
|
code: добавлен вывод суммы a и b
|
|
|
|
main.cpp | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
commit fca14d80ac2a78122441e9b7157481d374a33ecc
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Mon Feb 2 00:24:16 2026 +0400
|
|
|
|
code: добавлен ввод двух чисел
|
|
|
|
main.cpp | 5 +++--
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
commit fab7219f8b1c6faf26857c85e61a86f759905b87
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Sun Feb 1 02:03:46 2026 +0400
|
|
|
|
build: добавлен файл проекта
|
|
|
|
project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 40 insertions(+)
|
|
|
|
commit 0cda65b553627021651c8584ded99f55eb1b39a4
|
|
Author: Alice (BadaninaSP) <BadaninaSP@mpei.ru>
|
|
Date: Sun Feb 1 01:58:32 2026 +0400
|
|
|
|
code: заготовка программы
|
|
|
|
main.cpp | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
```
|
|
Попытка поместить коммит Боба поверх коммита Алисы заканчивается ошибкой (конфликт слияния в файле main.cpp)
|
|
```
|
|
$ git rebase origin/main
|
|
Auto-merging main.cpp
|
|
CONFLICT (content): Merge conflict in main.cpp
|
|
error: could not apply 25a8e7e... 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 25a8e7e... # code: добавлен вывод минимума
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main|REBASE 1/1)
|
|
```
|
|
Состояние хранилища
|
|
```
|
|
$ git status
|
|
interactive rebase in progress; onto 8a335dc
|
|
Last command done (1 command done):
|
|
pick 25a8e7e # code: добавлен вывод минимума
|
|
No commands remaining.
|
|
You are currently rebasing branch 'main' on '8a335dc'.
|
|
(fix conflicts and then run "git rebase --continue")
|
|
(use "git rebase --skip" to skip this patch)
|
|
(use "git rebase --abort" to check out the original branch)
|
|
|
|
Unmerged paths:
|
|
(use "git restore --staged <file>..." to unstage)
|
|
(use "git add <file>..." to mark resolution)
|
|
both modified: main.cpp
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main|REBASE 1/1)
|
|
```
|
|
Продолжается процесс перебазирования; на коммите 8a335dc
|
|
Проделана команда
|
|
включения коммита "25a8e7e # code: добавлен вывод минимума" в процесс интерактивного перебазирования
|
|
Нет оставшихся комманд
|
|
Сейчас вы перебазируете main на 8a335dc.
|
|
Исправьте конфликты и запустите "git rebase --continue"
|
|
Неслившиеся пути: оба изменённых main.cpp
|
|
Нет изменений добавленных для коммита.
|
|
|
|
В файле отмечено место конфликта
|
|
Отредактирую код так, чтобы он включал и правки Алисы, и правки Боба.
|
|
```
|
|
#include <iostream>
|
|
|
|
using namespace std;
|
|
|
|
int main()
|
|
{
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
<< "A - B = " << a - b << '\n'
|
|
<< "A * B = " << a * b << '\n'
|
|
<< "A / B = " << a / b << '\n'
|
|
<< "max(A, B) = " << max(a, b) << '\n'
|
|
<< "min(A, B) = " << min(a, b) << '\n';
|
|
}
|
|
```
|
|
Добавляю файл в индекс и продолжаю прерванную операцию rebase:
|
|
```
|
|
git add main.cpp
|
|
git rebase --continue
|
|
```
|
|
Проверяю историю хранилища
|
|
```
|
|
$ git log --oneline
|
|
fe639cd (HEAD -> main) code: добавлен вывод минимума
|
|
8a335dc (origin/main, origin/HEAD) code: добавлен вывод максимума
|
|
917427b code: добавлен вывод деления a на b
|
|
d3c32a5 code: добавлен вывод произведения a и b
|
|
59cb19c git: добавлен .gitignore
|
|
703d751 code: добавлен вывод разности a и b
|
|
da84366 code: добавлен вывод суммы a и b
|
|
fca14d8 code: добавлен ввод двух чисел
|
|
fab7219 build: добавлен файл проекта
|
|
0cda65b code: заготовка программы
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main)
|
|
```
|
|
Она имеет желаемый вид, отправляю её на сервер
|
|
```
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/ibada/.ssh/id_ed25519':
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 22 threads
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 433 bytes | 433.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:BadaninaSP/cs-lab02.git
|
|
8a335dc..fe639cd main -> main
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/bob/project (main)
|
|
```
|
|
## Использование веток ##
|
|
Пока Боб синхронизировал изменения, Алиса решила изменить тип чисел с целых на действительные. Предполагая, что это займет время, Алиса ведет работу в отдельной ветке. На момент начала работы репозитарий Алисы не синхронизирован с сервером, то есть последний коммит добавляет печать максимума. Все действия ведутся «на машине Алисы».
|
|
Создаю ветку double:
|
|
```
|
|
$ git branch double
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Переключаюсь на нее:
|
|
```
|
|
$ git checkout double
|
|
Switched to branch 'double'
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (double)
|
|
```
|
|
Заменяю тип переменных a и b на double
|
|
```
|
|
#include <iostream>
|
|
|
|
using namespace std;
|
|
|
|
int main()
|
|
{
|
|
cout << "Enter A and B: ";
|
|
double a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
<< "A - B = " << a - b << '\n'
|
|
<< "A * B = " << a * b << '\n'
|
|
<< "A / B = " << a / b << '\n'
|
|
<< "max(A, B) = " << max(a, b) << '\n';
|
|
}
|
|
```
|
|
и делаю коммит
|
|
```
|
|
$ git add main.cpp
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (double)
|
|
$ git commit -m 'code: заменён тип переменных a и b на double'
|
|
[double 52b8fb1] code: заменён тип переменных a и b на double
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (double)
|
|
```
|
|
Синхронизация ветки main «на машине Алисы» с сервером
|
|
```
|
|
$ git pull
|
|
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), 413 bytes | 22.00 KiB/s, done.
|
|
From uit.mpei.ru:BadaninaSP/cs-lab02
|
|
8a335dc..fe639cd main -> origin/main
|
|
Updating 8a335dc..fe639cd
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
$ git log --oneline --all
|
|
52b8fb1 (double) code: заменён тип переменных a и b на double
|
|
fe639cd (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод минимума
|
|
8a335dc code: добавлен вывод максимума
|
|
917427b code: добавлен вывод деления a на b
|
|
d3c32a5 code: добавлен вывод произведения a и b
|
|
59cb19c git: добавлен .gitignore
|
|
703d751 code: добавлен вывод разности a и b
|
|
da84366 code: добавлен вывод суммы a и b
|
|
fca14d8 code: добавлен ввод двух чисел
|
|
fab7219 build: добавлен файл проекта
|
|
0cda65b code: заготовка программы
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Сливаю ветку double в main:
|
|
```
|
|
$ git merge double
|
|
Auto-merging main.cpp
|
|
Merge made by the 'ort' strategy.
|
|
main.cpp | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
История всех изменений
|
|
```
|
|
$ git log --oneline --all
|
|
d1bd17c (HEAD -> main) code: заменён тип переменных a и b на double Merge branch 'double'
|
|
52b8fb1 (double) code: заменён тип переменных a и b на double
|
|
fe639cd (origin/main, origin/HEAD) code: добавлен вывод минимума
|
|
8a335dc code: добавлен вывод максимума
|
|
917427b code: добавлен вывод деления a на b
|
|
d3c32a5 code: добавлен вывод произведения a и b
|
|
59cb19c git: добавлен .gitignore
|
|
703d751 code: добавлен вывод разности a и b
|
|
da84366 code: добавлен вывод суммы a и b
|
|
fca14d8 code: добавлен ввод двух чисел
|
|
fab7219 build: добавлен файл проекта
|
|
0cda65b code: заготовка программы
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Отправляю на сервер
|
|
```
|
|
$ git push
|
|
Enumerating objects: 10, done.
|
|
Counting objects: 100% (10/10), done.
|
|
Delta compression using up to 22 threads
|
|
Compressing objects: 100% (6/6), done.
|
|
Writing objects: 100% (6/6), 803 bytes | 803.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:BadaninaSP/cs-lab02.git
|
|
fe639cd..d1bd17c main -> main
|
|
|
|
ibada@Meouw MINGW64 /d/Учёба/Разработка программного обеспечения систем управления/Модуль 2/lab02/alice/project (main)
|
|
```
|
|
Все изменения появились на сервере. |