Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
905 строки
37 KiB
Plaintext
905 строки
37 KiB
Plaintext
Федеральное государственное бюджетное образовательное учреждение высшего образования «Национальный исследовательский университет «МЭИ»
|
|
Институт информационных и вычислительных технологий
|
|
Кафедра Управления и интеллектуальных технологий
|
|
|
|
|
|
|
|
|
|
|
|
Дисциплина:
|
|
Разработка программного обеспечения систем управления
|
|
|
|
Лабораторная работа №2
|
|
Система контроля версий Git
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выполнил студент группы
|
|
А-02-24
|
|
Гнеушева Елизавета Михайловна
|
|
Вариант: -
|
|
Проверил
|
|
Козлюк Дмитрий Александрович
|
|
|
|
Москва 2025
|
|
• Вход в терминал и создание структуры каталогов
|
|
1. Создала на рабочем столе каталог lab02 и запустила в нём Git Bash, приглашение:
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02
|
|
$
|
|
2. Посмотрела файлы в рабочем каталоге командой ls-пусто:
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02
|
|
$ ls
|
|
3. Создала каталоги Алисы и Боба, изучила команду cd:
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02
|
|
$ mkdir alice
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02
|
|
$ mkdir bob
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02
|
|
$ cd alice
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice
|
|
$ mkdir project
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project
|
|
$ cd ..
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
• Инициализация репозитария и настройка Git
|
|
4. Инициализировала хранилище Git
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project
|
|
$ git init
|
|
Initialized empty Git repository in C:/Users/Лиза/Desktop/lab02/alice/project/.git/
|
|
5. Настроила репозитарий Алисы
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git config user.name 'Alice (GneushevaYM)'
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git config user.email 'GneushevaYM@mpei.ru'
|
|
• Занесение файлов под контроль версий
|
|
6. Посмотрела состояние рабочей копии
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git status
|
|
On branch master
|
|
|
|
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)
|
|
|
|
Строка 1 : указывает на ветку
|
|
Строка 2 : говорит о том что коммиты ещё не были созданы
|
|
Строка 3 : показывает неотслеживаемые файлы и подсказывает как их добавить
|
|
Строка 4 : говорит о том что нет отслеживаемых файлов, которые можно закоммитить
|
|
|
|
7. Начала отслеживать main.cpp (занесла под git)
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git add main.cpp
|
|
|
|
8. Посмотрела состояние рабочей копии
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git status
|
|
On branch master
|
|
|
|
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
|
|
|
|
Появилась строка с файлом, который можно закоммитить, т.к. мы начали его отслеживать.
|
|
|
|
9. Создала коммит
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git commit -m 'code: заготовка программы'
|
|
[master (root-commit) ad359ee] code: заготовка программы
|
|
1 file changed, 9 insertions(+)
|
|
create mode 100644 main.cpp
|
|
|
|
10. Поменяла название ветки на main
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git branch -m main
|
|
• Составление сообщений к коммитам
|
|
|
|
11. Занесла под git project.cbp
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add project.cbp
|
|
|
|
12. Создала коммит
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'build: добавлен файл проекта'
|
|
[master 9e53f4d] build: добавлен файл проекта
|
|
1 file changed, 40 insertions(+)
|
|
create mode 100644 project.cbp
|
|
• Создание коммитов с изменениями
|
|
|
|
13. Посмотрела состояние после замены на ввод двух чисел
|
|
Лиза@MSI 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/
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
Появилась строчка, указывающая на измененные файлы, изменения которых не закоммичены. В ситуации с добавлением нового файла строка указывала на файл, который можно коммитить.
|
|
|
|
14. Сделала коммиты 3 разными способами:
|
|
А) Выбрала файл, изменения которого должны войти в коммит, затем сделала коммит:
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m "code: добавлен ввод двух чисел"
|
|
[main 461f52b] code: добавлен ввод двух чисел
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
Б) Добавила в индекс все изменения, затем сделала коммит:
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add -u
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m "code: добавлен вывод суммы 2х чисел"
|
|
[main 696d24a] code: добавлен вывод суммы 2х чисел
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
В) Добавила все изменения в индекс и сделать коммит в один шаг:
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -a -m "code: добавлен вывод разности 2х чисел"
|
|
[main 66cb077] code: добавлен вывод разности 2х чисел
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
• Игнорирование файлов
|
|
|
|
15. Создала файл gitignore и сделала коммит:
|
|
|
|
Лиза@MSI 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
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add .gitignore
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'git: добавлен файл игнорирования'
|
|
[main a2d60c5] git: добавлен файл игнорирования
|
|
1 file changed, 3 insertions(+)
|
|
|
|
• Работа с журналом репозитария
|
|
16. Посмотрела журнал репозитария 3 способами:
|
|
|
|
А) git log –stat
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --stat
|
|
commit a2d60c59a7260ad8e1d7aaadd5036880f5b84edd (HEAD -> main)
|
|
Author: Alice (GneushevaYM) <GneushevaYM@mpei.ru>
|
|
Date: Tue Apr 1 17:57:18 2025 +0300
|
|
|
|
git: добавлен файл игнорирования
|
|
|
|
.gitignore | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
commit 66cb077519f330f50987cc39a36a9753da276db5
|
|
Author: Alice (GneushevaYM) <GneushevaYM@mpei.ru>
|
|
Date: Tue Apr 1 17:54:10 2025 +0300
|
|
|
|
code: добавлен вывод разности 2х чисел
|
|
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
commit 696d24a57ce7cf26ab520bd7acd3a5b000ec5e19
|
|
Author: Alice (GneushevaYM) <GneushevaYM@mpei.ru>
|
|
Date: Tue Apr 1 17:53:12 2025 +0300
|
|
|
|
code: добавлен вывод суммы 2х чисел
|
|
|
|
commit 461f52b8dc8baf0dd84671062213c89007e59279
|
|
Author: Alice (GneushevaYM) <GneushevaYM@mpei.ru>
|
|
:
|
|
|
|
Для последнего коммита показывается его хэш; автор; дата; сам коммит; перечисление файлов, в которых произошли изменения и кол-во измененных строчек(“+” добавленная стр., “-” удаленная стр.).
|
|
В последней стр. приведена статистика изменений данных файлов.
|
|
|
|
Б) git log --oneline –decorate
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate
|
|
a2d60c5 (HEAD -> main) git: добавлен файл игнорирования
|
|
66cb077 code: добавлен вывод разности 2х чисел
|
|
696d24a code: добавлен вывод суммы 2х чисел
|
|
461f52b code: добавлен ввод двух чисел
|
|
9e53f4d build: добавлен файл проекта
|
|
ad359ee code: заготовка программы
|
|
|
|
В) git log --oneline --decorate --all –graph
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* a2d60c5 (HEAD -> main) git: добавлен файл игнорирования
|
|
* 66cb077 code: добавлен вывод разности 2х чисел
|
|
* 696d24a code: добавлен вывод суммы 2х чисел
|
|
* 461f52b code: добавлен ввод двух чисел
|
|
* 9e53f4d build: добавлен файл проекта
|
|
* ad359ee code: заготовка программы
|
|
|
|
|
|
17. Поиск коммитов по теме build:
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --grep "build:"
|
|
commit 9e53f4d758f61b8e2e53c20af751ae1c1af6460e
|
|
Author: Alice (GneushevaYM) <GneushevaYM@mpei.ru>
|
|
Date: Tue Apr 1 17:46:21 2025 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
18. Поиск коммитов, затрагивающих project.cbp
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log -- project.cbp
|
|
commit 9e53f4d758f61b8e2e53c20af751ae1c1af6460e
|
|
Author: Alice (GneushevaYM) <GneushevaYM@mpei.ru>
|
|
Date: Tue Apr 1 17:46:21 2025 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
|
|
• Просмотр коммитов
|
|
|
|
19. Посмотрела предпоследний коммит
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show HEAD~1
|
|
commit 66cb077519f330f50987cc39a36a9753da276db5
|
|
Author: Alice (GneushevaYM) <GneushevaYM@mpei.ru>
|
|
Date: Tue Apr 1 17:54:10 2025 +0300
|
|
|
|
code: добавлен вывод разности 2х чисел
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 4364dbc..8435233 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';
|
|
}
|
|
|
|
|
|
• Просмотр изменений
|
|
|
|
20. Просмотрела изменения в рабочей копии
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 8435233..f372c78 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -8,7 +8,8 @@ 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';
|
|
}
|
|
|
|
|
|
1 строка. Указывает, что сравниваются две версии файла main.cpp
|
|
2 строка. Хеши состояния файлов до и после изменений.
|
|
3 строка. Старая версия файла.
|
|
4 строка. Новая версия файла.
|
|
5 строка. -8,7 означает, что раньше блок кода занимал 7 строк, а теперь занимает 8. Изменение произошло в файле начиная с 8-й строки. Далее идет код и удаленные и добавленные строки.
|
|
|
|
|
|
21. Просмотрела изменения между самым первым коммитом и коммитом, добавляющим вывод разности.
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff HEAD~5 HEAD~1
|
|
diff --git a/main.cpp b/main.cpp
|
|
index b4392ec..8435233 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>
|
|
|
|
• Откат изменений
|
|
22. Закоммитила вывод произведения.
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -a -m "code: добавлен вывод произведения 2х чисел"
|
|
[main 25db978] code: добавлен вывод произведения 2х чисел
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
23. Сделала откат коммита к состоянию в последнем коммите
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git reset --hard HEAD~1
|
|
HEAD is now at a2d60c5 git: добавлен файл игнорирования
|
|
|
|
Далее добавила комментарий в коде. Коммит не был сделан.
|
|
|
|
|
|
24. Сделала откат изменений другим способом (к состоянию в последнем коммите).
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git checkout HEAD -- main.cpp
|
|
|
|
Этим способом можно откатывать изменения отдельных файлов.
|
|
|
|
• Обмен кодом через удалённое хранилище
|
|
25. Создание пары ключей
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ ssh-keygen
|
|
Generating public/private ed25519 key pair.
|
|
Enter file in which to save the key (/c/Users/Лиза/.ssh/id_ed25519):
|
|
/c/Users/Лиза/.ssh/id_ed25519 already exists.
|
|
Overwrite (y/n)? y
|
|
Enter passphrase for "/c/Users/Лиза/.ssh/id_ed25519" (empty for no passphrase):
|
|
Enter same passphrase again:
|
|
Your identification has been saved in /c/Users/Лиза/.ssh/id_ed25519
|
|
Your public key has been saved in /c/Users/Лиза/.ssh/id_ed25519.pub
|
|
The key fingerprint is:
|
|
SHA256:6cPTBKz4zCFfLcEUdzgnT+JKnwYkIedfYkt5uDIjwj4 Лиза@MSI
|
|
The key's randomart image is:
|
|
+--[ED25519 256]--+
|
|
| . o.o.... |
|
|
| +.+.+=.o |
|
|
| .o@.oB |
|
|
| . . =o@. . |
|
|
| o + *.S+o. |
|
|
| . . B O.++ |
|
|
| E = =.. |
|
|
| . o |
|
|
| |
|
|
+----[SHA256]-----+
|
|
|
|
|
|
26. Запустила агент
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ eval $(ssh-agent -s)
|
|
Agent pid 1658
|
|
27. Загрузила ключ
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ ssh-add
|
|
Enter passphrase for /c/Users/Лиза/.ssh/id_ed25519:
|
|
Identity added: /c/Users/Лиза/.ssh/id_ed25519 (Лиза@MSI)
|
|
|
|
28. Отобразила ключ
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ cat ~/.ssh/id_ed25519.pub
|
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF9HQ+6mA7CAc3EREyxo4vTjbYbsp5LK77gWTw/Dwe50 Лиза@MSI
|
|
|
|
29. Настройка связи с удаленным хранилищем
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git remote add origin git@uit.mpei.ru:GneushevaYM/cs-lab02.git
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push -u origin main
|
|
Enumerating objects: 18, done.
|
|
Counting objects: 100% (18/18), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (16/16), done.
|
|
Writing objects: 100% (18/18), 2.39 KiB | 106.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:GneushevaYM/cs-lab02.git
|
|
* [new branch] main -> main
|
|
branch 'main' set up to track 'origin/main'.
|
|
|
|
30. Отобразила адрес проекта
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git remote -v
|
|
origin git@uit.mpei.ru:GneushevaYM/cs-lab02.git (fetch)
|
|
origin git@uit.mpei.ru:GneushevaYM/cs-lab02.git (push)
|
|
|
|
|
|
Переключение на машину Боба
|
|
• Получение проекта с сервера
|
|
31. Клонирование проекта
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob
|
|
$ git clone git@uit.mpei.ru:GneushevaYM/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), 2.39 KiB | 74.00 KiB/s, done.
|
|
Resolving deltas: 100% (2/2), done.
|
|
|
|
32. Переключение на каталог project
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob
|
|
$ cd project
|
|
|
|
33. Настройка хранилища Боба
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git config user.name 'Bob (GneushevaYM)'
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git config user.email 'GneushevaYM@mpei.ru'
|
|
|
|
• Совместная работа над проектом без конфликтов правок
|
|
|
|
34. С машины Боба добавляются изменения в коде и делается коммит
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git commit -a -m "code: добавлен вывод произведения"
|
|
[main c4e479b] code: добавлен вывод произведения
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git show HEAD
|
|
commit c4e479bb8b1913261fca1e85089c4322bb18c842 (HEAD -> main)
|
|
Author: Bob (GneushevaYM) <GneushevaYM@mpei.ru>
|
|
Date: Tue Apr 1 18:23:14 2025 +0300
|
|
|
|
code: добавлен вывод произведения
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 8435233..73a1fa7 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';
|
|
}
|
|
|
|
35. Отправка коммита Боба на сервер
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 425 bytes | 212.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:GneushevaYM/cs-lab02.git
|
|
a2d60c5..c4e479b main -> main
|
|
|
|
|
|
Переключение на машину Алисы
|
|
36. Загрузка изменений сделанных Бобом
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git fetch
|
|
Enter passphrase for key '/c/Users/Лиза/.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), 405 bytes | 23.00 KiB/s, done.
|
|
From uit.mpei.ru:GneushevaYM/cs-lab02
|
|
a2d60c5..c4e479b main -> origin/main
|
|
|
|
37. Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* c4e479b (origin/main, origin/HEAD) code: добавлен вывод произведения
|
|
* a2d60c5 (HEAD -> main) git: добавлен файл игнорирования
|
|
* 66cb077 code: добавлен вывод разности 2х чисел
|
|
* 696d24a code: добавлен вывод суммы 2х чисел
|
|
* 461f52b code: добавлен ввод двух чисел
|
|
* 9e53f4d build: добавлен файл проекта
|
|
* ad359ee code: заготовка программы
|
|
|
|
Ветка main отстает на один коммит от ветки origin/main.
|
|
|
|
38. Продвинула ветку main к скачанной версии:
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git pull --ff-only
|
|
Enter passphrase for key '/c/Users/Лиза/.ssh/id_ed25519':
|
|
Updating a2d60c5..c4e479b
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
39. С машины Алисы добавляется вывод деления в коде и делается коммит:
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -a -m "code: добавлен вывод деления"
|
|
[main 0b5e41d] code: добавлен вывод деления
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
40. Коммит Алисы отправляется на сервер:
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/Лиза/.ssh/id_ed25519':
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 417 bytes | 208.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:GneushevaYM/cs-lab02.git
|
|
c4e479b..0b5e41d main -> main
|
|
|
|
Переключение на машину Боба
|
|
|
|
41. Загрузка изменений на машине Боба
|
|
|
|
Лиза@MSI 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), 397 bytes | 18.00 KiB/s, done.
|
|
From uit.mpei.ru:GneushevaYM/cs-lab02
|
|
c4e479b..0b5e41d main -> origin/main
|
|
|
|
42. Продвижение ветки вперёд
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git pull --ff-only
|
|
Updating c4e479b..0b5e41d
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
• Разрешение конфликтов правок при совместной работе
|
|
На машине Алисы
|
|
43. В код добавляется вывод максимума и отправляется на сервер
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -a -m "code: добавлен вывод максимума"
|
|
[main 4e663ea] code: добавлен вывод максимума
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/Лиза/.ssh/id_ed25519':
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 462 bytes | 115.00 KiB/s, done.
|
|
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
|
|
На машине Боба
|
|
44. В код добавляется вывод минимума и происходит попытка отправить коммит на сервер. Но выходит ошибка, т.к. Боб пытается загрузить версию, основанную на более старом коммите, чем самый новый коммит в репозитарии
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git commit -a -m "code: добавлен вывод минимума"
|
|
[main e083621] code: добавлен вывод минимума
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push
|
|
To uit.mpei.ru:GneushevaYM/cs-lab02.git
|
|
! [rejected] main -> main (fetch first)
|
|
error: failed to push some refs to 'uit.mpei.ru:GneushevaYM/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.
|
|
|
|
45. Загрузка версии с сервера
|
|
|
|
Лиза@MSI 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), 442 bytes | 17.00 KiB/s, done.
|
|
From uit.mpei.ru:GneushevaYM/cs-lab02
|
|
0b5e41d..4e663ea main -> origin/main
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* e083621 (HEAD -> main) code: добавлен вывод минимума
|
|
| * 4e663ea (origin/main, origin/HEAD) code: добавлен вывод максимума
|
|
|/
|
|
* 0b5e41d code: добавлен вывод деления
|
|
* c4e479b code: добавлен вывод произведения
|
|
* a2d60c5 git: добавлен файл игнорирования
|
|
* 66cb077 code: добавлен вывод разности 2х чисел
|
|
* 696d24a code: добавлен вывод суммы 2х чисел
|
|
* 461f52b code: добавлен ввод двух чисел
|
|
* 9e53f4d build: добавлен файл проекта
|
|
* ad359ee code: заготовка программы
|
|
|
|
46. Объединим коммиты Боба и Алисы, поместив коммит Боба выше с помощью команды git rebase
|
|
|
|
$ git rebase origin/main
|
|
Auto-merging project/project.cpp
|
|
CONFLICT (content): Merge conflict in project/project.cpp
|
|
error: could not apply e083621... 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".
|
|
Could not apply e083621... code: добавлен вывод минимума
|
|
|
|
Команда завершается ошибкой. Производный файл от файла Алисы и Боба записывается в рабочую копию с помеченными метками конфликта. Убираем метки конфликта, и дорабатываем код.
|
|
|
|
47. Затем загружаем изменения в индекс и продолжаем операцию git rebase –continue.
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
|
|
$ git add -u
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
|
|
$ git status
|
|
interactive rebase in progress; onto 4e663ea
|
|
Last command done (1 command done):
|
|
pick e083621 code: добавлен вывод минимума
|
|
No commands remaining.
|
|
You are currently rebasing branch 'main' on '4e663ea'.
|
|
(all conflicts fixed: run "git rebase --continue")
|
|
|
|
Changes to be committed:
|
|
(use "git restore --staged <file>..." to unstage)
|
|
modified: main.cpp
|
|
|
|
|
|
$ git rebase --continue
|
|
[detached HEAD b62310e] code: добавлен вывод минимума
|
|
1 file changed, 4 insertions(+)
|
|
Successfully rebased and updated refs/heads/main.
|
|
|
|
48. История хранилища
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* b62310e (HEAD -> main) code: добавлен вывод минимума
|
|
* 4e663ea (origin/main, origin/HEAD) code: добавлен вывод максимума
|
|
* 0b5e41d code: добавлен вывод деления
|
|
* c4e479b code: добавлен вывод произведения
|
|
* a2d60c5 git: добавлен файл игнорирования
|
|
* 66cb077 code: добавлен вывод разности 2х чисел
|
|
* 696d24a code: добавлен вывод суммы 2х чисел
|
|
* 461f52b code: добавлен ввод двух чисел
|
|
* 9e53f4d build: добавлен файл проекта
|
|
* ad359ee code: заготовка программы
|
|
|
|
49. Отправила изменения на сервер
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/Лиза/.ssh/id_ed25519':
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 449 bytes | 112.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:GneushevaYM/cs-lab02.git
|
|
4e663ea..b62310e main -> main
|
|
|
|
|
|
• Использование веток
|
|
Пока Боб синхронизировал изменения, Алиса решила изменить тип чисел с целых на действительные.
|
|
|
|
50. Создала ветку double и перешла на неё
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git branch double
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git checkout double
|
|
Switched to branch 'double'
|
|
|
|
51. Закоммитила изменения
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git add -u
|
|
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git commit -m 'code: тип данных изменен на double'
|
|
[double 336f466] code: тип данных изменен на double
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
52. Переключилась на ветку main
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git checkout main
|
|
Switched to branch 'main'
|
|
Your branch is up to date with 'origin/main'.
|
|
|
|
53. Синхронизация ветки main «на машине Алисы» с сервером.
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git fetch
|
|
Enter passphrase for key '/c/Users/Лиза/.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), 429 bytes | 20.00 KiB/s, done.
|
|
From uit.mpei.ru:GneushevaYM/cs-lab02
|
|
4e663ea..b62310e main -> origin/main
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git pull --ff-only
|
|
Enter passphrase for key '/c/Users/Лиза/.ssh/id_ed25519':
|
|
Updating 4e663ea..b62310e
|
|
Fast-forward
|
|
main.cpp | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 336f466 (double) code: тип данных изменен на double
|
|
| * b62310e (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод минимума
|
|
|/
|
|
* 4e663ea code: добавлен вывод максимума
|
|
* 0b5e41d code: добавлен вывод деления
|
|
* c4e479b code: добавлен вывод произведения
|
|
* a2d60c5 git: добавлен файл игнорирования
|
|
* 66cb077 code: добавлен вывод разности 2х чисел
|
|
* 696d24a code: добавлен вывод суммы 2х чисел
|
|
* 461f52b code: добавлен ввод двух чисел
|
|
* 9e53f4d build: добавлен файл проекта
|
|
* ad359ee code: заготовка программы
|
|
|
|
54. Объединяем ветки с помощью git merge
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git merge double
|
|
Auto-merging main.cpp
|
|
Merge made by the 'ort' strategy.
|
|
main.cpp | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
55. Отправляем на сервер
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/Лиза/.ssh/id_ed25519':
|
|
Enumerating objects: 10, done.
|
|
Counting objects: 100% (10/10), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (6/6), done.
|
|
Writing objects: 100% (6/6), 739 bytes | 246.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:GneushevaYM/cs-lab02.git
|
|
b62310e..41c07d7 main -> main
|
|
|
|
56. История всех веток
|
|
|
|
Лиза@MSI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 41c07d7 (HEAD -> main, origin/main, origin/HEAD) Merge branch 'double'
|
|
|\
|
|
| * 336f466 (double) code: тип данных изменен на double
|
|
* | b62310e code: добавлен вывод минимума
|
|
|/
|
|
* 4e663ea code: добавлен вывод максимума
|
|
* 0b5e41d code: добавлен вывод деления
|
|
* c4e479b code: добавлен вывод произведения
|
|
* a2d60c5 git: добавлен файл игнорирования
|
|
* 66cb077 code: добавлен вывод разности 2х чисел
|
|
* 696d24a code: добавлен вывод суммы 2х чисел
|
|
* 461f52b code: добавлен ввод двух чисел
|
|
* 9e53f4d build: добавлен файл проекта
|
|
* ad359ee code: заготовка программы
|
|
|
|
|
|
|