Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1172 строки
36 KiB
Markdown

# Отчет по лабораторной работе № 2 «Система контроля версий Git»
Выполнил: Мордашов С. A \
Группа: А-01-24 \
Проверил: Филатов С.A
Примечание: работа выполнялась на Windows.
1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$
```
2. Просмотрел файлы в рабочем каталоге можно командой `ls` — пусто:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ ls
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$
```
3. Создал каталоги Алисы и Боба, создал каталог `project`,
изучил команду `cd` в процессе:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir alice
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir bob
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd bob
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd ..
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd alice
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ mkdir project
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ ls
project/
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ cd project
```
4. Инициализировал репозитарий:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/Mi/OneDrive/Рабочий стол/lab02/alice/project/.git/
```
У меня имя ветки по умолчанию не настроено.
Git создал ветку под названием `master`, что видно в приглашении терминала. По описанию из методички должна была появиться подсказка `hint:` для изменения имени, но в моей версии `Git-2.48.1-64-bit` она не высветилась.
5. Изменим имя ветки `master`, на `main` для удобства. Применим команду `git branch -m main`, а затем проверим, создался ли репозиторий, c помощью команды `ls -A`:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master)
$ git branch -m main
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ ls -A
.git/
```
6. Настроим репозитарий Алисы, чтобы коммиты были от ее имени:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.name 'Alice (MordashovSA)'
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.email 'MordashovSA@mpei.ru'
```
7. Запустил CodeBlocks и создал проект в репозитарии Алисы:
##### Параметры были выбраны такие:
Project title: `project`
Folder to create project in: `C:\Users\Mi\OneDrive\Рабочий стол\lab02\alice`
Project filename: `project.cbp`
Resulting filename: `C:\Users\Mi\OneDrive\Рабочий стол\lab02\alice\project\project.cbp`
##### Структура файлов выглядит таким образом:
```
lab02
├── alice
│ └── project <--------- текущий рабочий каталог
│ ├── .git <--------- создан командой "git init"
│ ├── bin <--------- создан CodeBlocks при сборке
│ ├── obj <--------- (то же самое)
│ ├── main.cpp <-- код программы
│ └── project.cbp <-- файл проекта
└── bob
```
8. Вернувшись в Git Bash, просмотрим состояние рабочей копии:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main - выведена информация о текущей ветке 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) - чтобы включить неотслеживаемый файл в коммит, нужно использовать команду git add.
```
9. Добавим файл main.cpp в индекс и закомили его:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp
```
проверили внесение файла:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/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
```
закоммили:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: заготовка программы'
[main (root-commit) 1476d9a] code: заготовка программы
1 file changed, 9 insertions(+)
create mode 100644 main.cpp
```
аналогично с project.cbp:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.cbp
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/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/
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'build: | add project file'
[main 0f25a14] build: | add project file
1 file changed, 38 insertions(+)
create mode 100644 project.cbp
```
10. Различия между случаем, когда добавлялся новый файл, и когда изменился существующий
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/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")
```
11. Закомим main.cpp снова 1 способом (ввод a, b):
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp
git commit -m "..."
[main f6890c8] ...
1 file changed, 4 insertions(+), 1 deletion(-)
```
12. Коммим ещё a+b
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/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")
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add -u `git add -u — это команда для подготовки к коммиту только изменённых и удалённых файлов, но не любых неотслеживаемых файлов.`
git commit -m "..."
[main 014403c] ...
1 file changed, 1 insertion(+)
```
13. Коммим ещё и a-b :
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/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")
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m "..." - `— это команда в системе контроля версий Git, которая позволяет пропустить этап подготовки (с помощью git add) для изменённых файлов и зафиксировать их за один шаг.`
[main cc90111] ...
1 file changed, 2 insertions(+), 2 deletions(-)
```
14. Игнорирование файлов католога project c помощью .gitignore, и его занесение в git (создание коммита)
Содержимое .gitignore:
/bin
/obj
/project.layout
/project.depend
занесение:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/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)
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add .gitignore
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: .gitignore
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'git'
[main c4878e1] git
1 file changed, 4 insertions(+)
create mode 100644 .gitignore
```
15. Просмотрели журнал коммитов 3-мя способами:
1-й:
```
$ git log --stat
commit c4878e158000087a27662e5a55388a9cd244ad96 (HEAD -> main) (отображается хэш-номер, а также имя ветки проекта)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 20:24:33 2025 +0300
git
.gitignore | 4 ++++
1 file changed, 4 insertions(+) (1 файл изменён 4 строки добавилось)
commit cc90111dc34b722e8e951c1cf0b683e126dfa291
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 20:03:59 2025 +0300
...
main.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 014403c534015ce10bf1b4b69d463c01f8f9aa67
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 20:00:49 2025 +0300
...
main.cpp | 1 +
1 file changed, 1 insertion(+)
commit f6890c870a1ff096e73560a40678989657bd648a
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 19:52:51 2025 +0300
...
main.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit 0f25a148357a7e6fdf687323837f6ece7069bc1d
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 19:40:23 2025 +0300
build: | add project file
project.cbp | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
commit 1476d9a862ab4e6fb4e1fd013aef853737b4f318
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 19:32:23 2025 +0300
code: заготовка программы
main.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
```
2-ым:
```
$ git log --oneline --decorate
c4878e1 (HEAD -> main) git
cc90111 ...
014403c ...
f6890c8 ...
0f25a14 build: | add project file
1476d9a code: заготовка программы
```
3-м:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* c4878e1 (HEAD -> main) git
* cc90111 ...
* 014403c ...
* f6890c8 ...
* 0f25a14 build: | add project file
* 1476d9a code: заготовка программы
```
Несколько полезных функций:
1)
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log -- main.cpp
commit cc90111dc34b722e8e951c1cf0b683e126dfa291
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 20:03:59 2025 +0300
...
commit 014403c534015ce10bf1b4b69d463c01f8f9aa67
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 20:00:49 2025 +0300
...
commit f6890c870a1ff096e73560a40678989657bd648a
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 19:52:51 2025 +0300
...
commit 1476d9a862ab4e6fb4e1fd013aef853737b4f318
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 19:32:23 2025 +0300
code: заготовка программы
```
2)
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --grep "code:"
commit 1476d9a862ab4e6fb4e1fd013aef853737b4f318
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 19:32:23 2025 +0300
code: заготовка программы
```
коммиты по теме build, затем коммиты, затрагивающие project.cbp:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --grep "build:"
commit 0f25a148357a7e6fdf687323837f6ece7069bc1d
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 19:40:23 2025 +0300
build: | add project file
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log -- project.cbp
commit 0f25a148357a7e6fdf687323837f6ece7069bc1d
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 19:40:23 2025 +0300
build: | add project file
```
17. просмотр в gitbash самих коммитов
1 C помощью HEAD , а потом с помощью названия ветки просмотрим последний коммит
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show HEAD
commit c4878e158000087a27662e5a55388a9cd244ad96 (HEAD -> main)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 20:24:33 2025 +0300
git
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..df212eb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin
+/obj
+/project.layout
+/project.depend
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show main
commit c4878e158000087a27662e5a55388a9cd244ad96 (HEAD -> main)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 20:24:33 2025 +0300
git
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..df212eb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin
+/obj
+/project.layout
+/project.depend
```
предпоследний коммит:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show cc90111
commit cc90111dc34b722e8e951c1cf0b683e126dfa291
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 20:03:59 2025 +0300
...
diff --git a/main.cpp b/main.cpp
index dec99f2..5371b30 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,7 +7,7 @@ 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';
return 0;
}
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show HEAD~1
commit cc90111dc34b722e8e951c1cf0b683e126dfa291
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 20:03:59 2025 +0300
...
diff --git a/main.cpp b/main.cpp
index dec99f2..5371b30 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,7 +7,7 @@ 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';
return 0;
}
```
18. Некторые команды git diff:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff
diff --git a/main.cpp b/main.cpp
index 5371b30..15a93c2 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,6 +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';
+
return 0;
}
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..df212eb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin
+/obj
+/project.layout
+/project.depend
diff --git a/main.cpp b/main.cpp
index dec99f2..15a93c2 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,7 +7,9 @@ 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'
+ << "A * B = " << a * b << '\n';
return 0;
}
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~2 HEAD
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..df212eb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin
+/obj
+/project.layout
+/project.depend
diff --git a/main.cpp b/main.cpp
index dec99f2..5371b30 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,7 +7,7 @@ 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';
return 0;
}
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~5 HEAD~1
diff --git a/main.cpp b/main.cpp
index b4392ec..5371b30 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,6 +4,10 @@ using namespace std;
int main()
{
- cout << "Hello world!" << endl;
+ cout << "Enter A and B: ";
+ int a, b;
+ cin >> a >> b;
+ cout << "A + B = " << a + b << '\n'
+ << "A - B = " << a - b << '\n';
return 0;
}
diff --git a/project.cbp b/project.cbp
new file mode 100644
index 0000000..c4697a9
--- /dev/null
+++ b/project.cbp
@@ -0,0 +1,38 @@
+<?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 />
+ </Project>
+</CodeBlocks_project_file>
```
19. Откат изменений 2-мя способами:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp
git commit -m "product"
[main 9ad4bf4] product
1 file changed, 3 insertions(+), 1 deletion(-)
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show HEAD
commit 9ad4bf44cfcd517f8c51a1701db2cc6bf9bf861e (HEAD -> main)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Sun Apr 6 22:38:48 2025 +0300
product
diff --git a/main.cpp b/main.cpp
index 5371b30..15a93c2 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,6 +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';
+
return 0;
}
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at c4878e1 git
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout HEAD -- main.cpp
```
20. Выгрузка на сервер
```
```
21. Восстание боба
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ git clone git@uit.mpei.ru:MordashovSA/cs-lab02.git project
Cloning into 'project'...
Enter passphrase for key '/c/Users/Mi/.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.
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd project
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.name 'Bob (MordashovSA)'
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.email 'MordashovSA@mpei.ru'
```
23. Сначала вносит изменения в проект боб , а потом алиса
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git add main.cpp
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -m "product bob"
[main 3937477] product bob
1 file changed, 2 insertions(+), 1 deletion(-)
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.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), 366 bytes | 183.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:MordashovSA/cs-lab02.git
c4878e1..3937477 main -> main
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd alice
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ cd project
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git fetch
Enter passphrase for key '/c/Users/Mi/.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), 346 bytes | 10.00 KiB/s, done.
From uit.mpei.ru:MordashovSA/cs-lab02
c4878e1..3937477 main -> origin/main
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 3937477 (origin/main, origin/HEAD) product bob
* c4878e1 (HEAD -> main) git
* cc90111 ...
* 014403c ...
* f6890c8 ...
* 0f25a14 build: | add project file
* 1476d9a code: заготовка программы
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git pull --ff-only
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
Updating c4878e1..3937477
Fast-forward
main.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "delenie bob"
[main a484402] delenie bob
1 file changed, 2 insertions(+), 1 deletion(-)
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.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), 386 bytes | 193.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:MordashovSA/cs-lab02.git
3937477..a484402 main -> main
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd bob
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd project
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git fetch
Enter passphrase for key '/c/Users/Mi/.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), 366 bytes | 8.00 KiB/s, done.
From uit.mpei.ru:MordashovSA/cs-lab02
3937477..a484402 main -> origin/main
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* a484402 (origin/main, origin/HEAD) delenie bob
* 3937477 (HEAD -> main) product bob
* c4878e1 git
* cc90111 ...
* 014403c ...
* f6890c8 ...
* 0f25a14 build: | add project file
* 1476d9a code: заготовка программы
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git pull --ff-only
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
Updating 3937477..a484402
Fast-forward
main.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
```
24. Разрешение конфликтов правок при совместной работе:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "max alice"
[main ad602cf] max alice
1 file changed, 6 insertions(+)
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.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), 409 bytes | 409.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:MordashovSA/cs-lab02.git
a484402..ad602cf main -> main
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd bob
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd project
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git add main.cpp
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -m "min bob"
[main 5c71966] min bob
1 file changed, 6 insertions(+)
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
To uit.mpei.ru:MordashovSA/cs-lab02.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'uit.mpei.ru:MordashovSA/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.
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git fetch
Enter passphrase for key '/c/Users/Mi/.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), 389 bytes | 38.00 KiB/s, done.
From uit.mpei.ru:MordashovSA/cs-lab02
a484402..ad602cf main -> origin/main
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 5c71966 (HEAD -> main) min bob
| * ad602cf (origin/main, origin/HEAD) max alice
|/
* a484402 delenie bob
* 3937477 product bob
* c4878e1 git
* cc90111 ...
* 014403c ...
* f6890c8 ...
* 0f25a14 build: | add project file
* 1476d9a code: заготовка программы
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git rebase origin/main
Auto-merging main.cpp
CONFLICT (content): Merge conflict in main.cpp
error: could not apply 09cc3de... min bob
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 09cc3de... min bob
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|REBASE 1/1)
$ git pull --ff-only
error: Pulling is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git pull --ff-only
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
hint: Diverging branches can't be fast-forwarded, you need to either:
hint:
hint: git merge --no-ff
hint:
hint: or:
E325: ATTENTION
Found a swap file by the name "~/OneDrive/Рабочий стол/lab02/bob/project/.git/.COMMIT_EDITMSG.swp"
owned by: Mi dated: Mon Apr 07 04:23:47 2025
min bob
[detached HEAD 0db9b80] min bob
1 file changed, 6 insertions(+)
Successfully rebased and updated refs/heads/main.
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.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), 382 bytes | 382.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:MordashovSA/cs-lab02.git
ad602cf..0db9b80 main -> main
```
25. Слияние веток:
```
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout double
error: pathspec 'double' did not match any file(s) known to git
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git branch double
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git commit -a -m "double alice"
[double a1421a6] double alice
1 file changed, 1 insertion(+), 1 deletion(-)
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git show HEAD
commit a1421a61b4c8461165f0df96709de6025aa2a083 (HEAD -> double)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Thu Apr 10 20:34:10 2025 +0300
double alice
diff --git a/main.cpp b/main.cpp
index 88e0a14..13d54db 100644
--- a/main.cpp
+++ b/main.cpp
@@ -5,7 +5,7 @@ using namespace std;
int main()
{
cout << "Enter A and B: ";
- int a, b;
+ double a, b;
cin >> a >> b;
cout << "A + B = " << a + b << '\n'
<< "A - B = " << a - b << '\n'
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git checkout MAIN
Switched to branch 'MAIN'
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (MAIN)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout p
error: pathspec 'p' did not match any file(s) known to git
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git fetch
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
From uit.mpei.ru:MordashovSA/cs-lab02
ad602cf..0db9b80 main -> origin/main
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git pull --ff-only
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
Auto-merging main.cpp
Merge made by the 'ort' strategy.
main.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 5a70cef (HEAD -> main) Merge branch 'double'
|\
| * a1421a6 (double) double alice
* | 0db9b80 (origin/main, origin/HEAD) min bob
|/
* ad602cf max alice
* a484402 delenie bob
* 3937477 product bob
* c4878e1 git
* cc90111 ...
* 014403c ...
* f6890c8 ...
* 0f25a14 build: | add project file
* 1476d9a code: заготовка программы
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log
commit 5a70ceff0acfe5152459a231d1ea074cdf4356b6 (HEAD -> main)
Merge: 0db9b80 a1421a6
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Thu Apr 10 20:41:38 2025 +0300
Merge branch 'double'
commit a1421a61b4c8461165f0df96709de6025aa2a083 (double)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Thu Apr 10 20:34:10 2025 +0300
double alice
commit 0db9b808ba1f04a89d1c199a54073dd8bc670143 (origin/main, origin/HEAD)
Author: Bob (MordashovSA) <MordashovSA@mpei.ru>
Date: Mon Apr 7 16:47:23 2025 +0300
min bob
commit ad602cf9a45174cc22227cd21c8e7bd9972a9cb6
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date: Mon Apr 7 03:23:28 2025 +0300
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.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), 691 bytes | 172.00 KiB/s, done.
Total 6 (delta 2), reused 1 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:MordashovSA/cs-lab02.git
0db9b80..5a70cef main -> main
```