|
|
@ -0,0 +1,625 @@
|
|
|
|
|
|
|
|
# Отчет по лабораторной работе № 2 «Система контроля версий Git»
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выполнил: Коваленко Д. М. \
|
|
|
|
|
|
|
|
Группа: А-01-23 \
|
|
|
|
|
|
|
|
Проверил: Козлюк Д. А.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Примечание: работа выполнялась на MacBook в IDE VS Code, из-за этого нет файлов проекта и подключение к серверу кафедры производилось по HTTP.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. Создал в именной папке каталог lab_02 и запустил в нем консоль.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Создал каталоги Алисы и Боба, каталог `project`. В процессе познакомился с `cd`:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari lab_02 % mkdir alice
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari lab_02 % mkdir bob
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari lab_02 % cd alice
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari alice % mkdir project
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari alice % cd project
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % cd ..
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari alice % cd project
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3. Инициализировал репозитарий:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git init
|
|
|
|
|
|
|
|
Initialized empty Git repository in /Users/vatarishin/lab_02/alice/project/.git/
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4. Поменял имя ветки и настроил имя пользователя и email
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git branch -m main
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git config user.name 'Alice (KovalenkoDM)'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git config user.email 'kovalenkodm@mpei.ru'
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5. Просмотрим статус репозитария
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git status
|
|
|
|
|
|
|
|
On branch main
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
No commits yet
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Untracked files:
|
|
|
|
|
|
|
|
(use "git add <file>..." to include in what will be committed)
|
|
|
|
|
|
|
|
main.cpp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Увидели, на какой ветке стоим, сообщение о том, что не было ни одного коммита, а так же файлы, которые присутствуют в каталоге, но не добавлены в git.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6. Добавим main.cpp и повторим команду
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git add main.cpp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git status
|
|
|
|
|
|
|
|
On branch main
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
No commits yet
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Changes to be committed:
|
|
|
|
|
|
|
|
(use "git rm --cached <file>..." to unstage)
|
|
|
|
|
|
|
|
new file: main.cpp
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
`git status` показывает изменения, которые войдут в следующий коммит. Сейчас это только `main.cpp`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7. Сделаем коммит
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git commit -m 'code: заготовка программы'
|
|
|
|
|
|
|
|
[main (root-commit) 5f0ca26] code: заготовка программы
|
|
|
|
|
|
|
|
1 file changed, 0 insertions(+), 0 deletions(-)
|
|
|
|
|
|
|
|
create mode 100644 main.cpp
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8. Изменим `main.cpp`, добавив ввод, но не обновим этот файл в git.
|
|
|
|
|
|
|
|
Посмотрим статус репозитория:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git status
|
|
|
|
|
|
|
|
On branch main
|
|
|
|
|
|
|
|
Changes not staged for commit:
|
|
|
|
|
|
|
|
(use "git add <file>..." to update what will be committed)
|
|
|
|
|
|
|
|
(use "git restore <file>..." to discard changes in working directory)
|
|
|
|
|
|
|
|
modified: main.cpp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Как можно видеть, стоим мы все так же на ветке `main`, однако уже нет файлов, не занесенных в git.
|
|
|
|
|
|
|
|
Так же видим, что подпись у `main.cpp` изменилась. Теперь он отмечен как `modified`, т.е. измененный, а не новый, как было ранее.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9. Создадим коммит с вводом чисел и выводом суммы:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git add main.cpp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git commit -m "Добавил вывод суммы"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[main b6b4301] Добавил вывод суммы
|
|
|
|
|
|
|
|
1 file changed, 9 insertions(+)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Видим, что в коммит вошло 1 изменеие файла с 9 добавленными строками (`9 insertions(+)`)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10. Добавим в программу вывод разности и сделаем коммит вторым указанным способом:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git add -u
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git commit -m "Добавил вывод разности"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[main af0c01e] Добавил вывод разности
|
|
|
|
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git commit -a -m "fix"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[main 00bf724] fix
|
|
|
|
|
|
|
|
1 file changed, 1 insertion(+)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Позже я заметил, что не дописал одну строчку в программе, пришлось коммитить отдельно.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11. Создал файл `.gitignore` и занёс в него папку с кэшем `.vs`, а так же всё, что было создано при сборке программы.
|
|
|
|
|
|
|
|
Закоммитим.
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git add .gitignore
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git commit -m "git"
|
|
|
|
|
|
|
|
[main 7af6274] git
|
|
|
|
|
|
|
|
1 file changed, 3 insertions(+)
|
|
|
|
|
|
|
|
create mode 100644 .gitignore
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Теперь git не будет обращать внимание на указанные файлы и папку.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12. Посмотрим историю коммитов в трёх исполнениях
|
|
|
|
|
|
|
|
Просто вывод, сжато и сжато+дерево
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git log
|
|
|
|
|
|
|
|
commit 7af62747d777cd0f2e9b8c281abe2f77e8d49a26 (HEAD -> main)
|
|
|
|
|
|
|
|
Author: Alice (KovalenkoDM) <kovalenkodm@mpei.ru>
|
|
|
|
|
|
|
|
Date: Mon Mar 18 14:27:08 2024 +0300
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
git
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
git
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
commit 00bf7248ebeb685f4a034b04e3c3f42e7a421948
|
|
|
|
|
|
|
|
Author: Alice (KovalenkoDM) <kovalenkodm@mpei.ru>
|
|
|
|
|
|
|
|
Date: Mon Mar 18 14:20:24 2024 +0300
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fix
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
commit af0c01e8ca0d7373daade67acf31b70a3d4354a5
|
|
|
|
|
|
|
|
Author: Alice (KovalenkoDM) <kovalenkodm@mpei.ru>
|
|
|
|
|
|
|
|
Date: Mon Mar 18 14:15:32 2024 +0300
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Добавил вывод разности
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
commit b6b4301d2d39fa81c8352e6ece575468654d9000
|
|
|
|
|
|
|
|
Author: Alice (KovalenkoDM) <kovalenkodm@mpei.ru>
|
|
|
|
|
|
|
|
Date: Mon Mar 18 14:09:12 2024 +0300
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Добавил вывод суммы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
commit 5f0ca265db41576cc65ea691eeda544f27f25d9c
|
|
|
|
|
|
|
|
Author: Alice (KovalenkoDM) <kovalenkodm@mpei.ru>
|
|
|
|
|
|
|
|
Date: Mon Mar 18 13:49:58 2024 +0300
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git log --oneline --decorate
|
|
|
|
|
|
|
|
7af6274 (HEAD -> main) git
|
|
|
|
|
|
|
|
00bf724 fix
|
|
|
|
|
|
|
|
af0c01e Добавил вывод разности
|
|
|
|
|
|
|
|
b6b4301 Добавил вывод суммы
|
|
|
|
|
|
|
|
5f0ca26 code: заготовка программы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git log --oneline --decorate --all --graph
|
|
|
|
|
|
|
|
* 7af6274 (HEAD -> main) git
|
|
|
|
|
|
|
|
* 00bf724 fix
|
|
|
|
|
|
|
|
* af0c01e Добавил вывод разности
|
|
|
|
|
|
|
|
* b6b4301 Добавил вывод суммы
|
|
|
|
|
|
|
|
* 5f0ca26 code: заготовка прогр
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13. Введём `git log --stat` и посмотрим на вывод
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git log --stat
|
|
|
|
|
|
|
|
commit 7af62747d777cd0f2e9b8c281abe2f77e8d49a26 (HEAD -> main)
|
|
|
|
|
|
|
|
Author: Alice (KovalenkoDM) <kovalenkodm@mpei.ru>
|
|
|
|
|
|
|
|
Date: Mon Mar 18 14:27:08 2024 +0300
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
git
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.gitignore | 3 +++
|
|
|
|
|
|
|
|
1 file changed, 3 insertions(+)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Показывается хэш коммита, автор, точное время создания коммита, тема коммита, добавленный файл.
|
|
|
|
|
|
|
|
Так же видим сколько файлов изменено и сколько строк в этом файле добавлено
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14. Посмотрим предпоследний коммит
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git show 00bf724
|
|
|
|
|
|
|
|
commit 00bf7248ebeb685f4a034b04e3c3f42e7a421948
|
|
|
|
|
|
|
|
Author: Alice (KovalenkoDM) <kovalenkodm@mpei.ru>
|
|
|
|
|
|
|
|
Date: Mon Mar 18 14:20:24 2024 +0300
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fix
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
|
|
|
|
|
|
index ff97f51..b496f37 100644
|
|
|
|
|
|
|
|
--- a/main.cpp
|
|
|
|
|
|
|
|
+++ b/main.cpp
|
|
|
|
|
|
|
|
@@ -1,4 +1,5 @@
|
|
|
|
|
|
|
|
#include <iostream>
|
|
|
|
|
|
|
|
+using namespace std;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
|
|
|
cout << "Enter A and B: ";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Показывается хэш, автор, дата, время, тема. Код программы: - означает удаление указанной строки, а + добавление
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15. Добавим печать произведения в программу, но коммитить пока не будем
|
|
|
|
|
|
|
|
Посмотрим изменения в рабочей копии
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git diff
|
|
|
|
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
|
|
|
|
|
|
index b496f37..eb39ee8 100644
|
|
|
|
|
|
|
|
--- a/main.cpp
|
|
|
|
|
|
|
|
+++ b/main.cpp
|
|
|
|
|
|
|
|
@@ -5,6 +5,8 @@ int main() {
|
|
|
|
|
|
|
|
cout << "Enter A and B: ";
|
|
|
|
|
|
|
|
int a, b;
|
|
|
|
|
|
|
|
cin >> a >> b;
|
|
|
|
|
|
|
|
- cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
|
|
|
|
|
|
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
|
|
|
|
|
|
+ << "A - B = " << a - b << '\n'
|
|
|
|
|
|
|
|
+ << "A * B = " << a * b << '\n';
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Как можно видеть, вывод изменился. `-` показывает, какая сточка была удалена, а `+`, что было добавлено.
|
|
|
|
|
|
|
|
(В добавок ко всему я привел вывод к нужному виду)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16. Посмотрим изменения между самым первым коммитом и коммитом, добавляющим вывод разности
|
|
|
|
|
|
|
|
Для этого используем хэши этих коммитов, которые написаны выше
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git diff 5f0ca26 af0c01e
|
|
|
|
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
|
|
|
|
|
|
index e69de29..ff97f51 100644
|
|
|
|
|
|
|
|
--- a/main.cpp
|
|
|
|
|
|
|
|
+++ b/main.cpp
|
|
|
|
|
|
|
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
+#include <iostream>
|
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
+int main() {
|
|
|
|
|
|
|
|
+ cout << "Enter A and B: ";
|
|
|
|
|
|
|
|
+ int a, b;
|
|
|
|
|
|
|
|
+ cin >> a >> b;
|
|
|
|
|
|
|
|
+ cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
|
|
|
|
|
|
|
|
+ return 0;
|
|
|
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Поскольку изначально в файле ничего не было, видим только добавление строк
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17. Закоммитим изменения в рабочей копии (вывод произведения)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git add main.cpp
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git commit -m "добавил вывод произведения"
|
|
|
|
|
|
|
|
[main 7273370] добавил вывод произведения
|
|
|
|
|
|
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18. Откатимся к предпоследнему коммиту:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git reset --hard HEAD~1
|
|
|
|
|
|
|
|
HEAD is now at 7af6274 git
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19. Добавим над функцией main() комментарий и откатим этот файл к состоянию в последнем коммите:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git checkout HEAD -- main.cpp
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20. Из-за того, что через mac не возможно подключится с помощью ssh ключа, поключимся к серверу с помощью протокола HTTP и запушим изменения на сервер
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git remote set-url origin http://uit.mpei.ru/git/KovalenkoDM/cs-lab02.git
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git push origin main -u
|
|
|
|
|
|
|
|
Username for 'http://uit.mpei.ru': KovalenkoDM
|
|
|
|
|
|
|
|
Password for 'http://KovalenkoDM@uit.mpei.ru':
|
|
|
|
|
|
|
|
Enumerating objects: 15, done.
|
|
|
|
|
|
|
|
Counting objects: 100% (15/15), done.
|
|
|
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
|
|
|
Compressing objects: 100% (9/9), done.
|
|
|
|
|
|
|
|
Writing objects: 100% (15/15), 1.38 KiB | 1.38 MiB/s, done.
|
|
|
|
|
|
|
|
Total 15 (delta 2), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
|
|
|
To http://uit.mpei.ru/git/KovalenkoDM/cs-lab02.git
|
|
|
|
|
|
|
|
* [new branch] main -> main
|
|
|
|
|
|
|
|
branch 'main' set up to track 'origin/main'.
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21. На машине Боба.
|
|
|
|
|
|
|
|
Клонируем репозитарий с облака, указав URL и папку
|
|
|
|
|
|
|
|
Перейдём в папку проекта
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari bob % git clone http://uit.mpei.ru/git/KovalenkoDM/cs-lab02.git project
|
|
|
|
|
|
|
|
Cloning into 'project'...
|
|
|
|
|
|
|
|
remote: Enumerating objects: 15, done.
|
|
|
|
|
|
|
|
remote: Counting objects: 100% (15/15), done.
|
|
|
|
|
|
|
|
remote: Compressing objects: 100% (9/9), done.
|
|
|
|
|
|
|
|
remote: Total 15 (delta 2), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
|
|
|
Receiving objects: 100% (15/15), done.
|
|
|
|
|
|
|
|
Resolving deltas: 100% (2/2), done.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari bob % cd project
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22. Изменим имя пользователя и email
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git config user.name ‘Bob (KovalenkoDM)'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git config user.email 'kovalenkodm@mpei.ru'
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23. Добавим вывод частного, закоммитим и отправим на сервер
|
|
|
|
|
|
|
|
Примечание: я перепутал порядок добавления частоного и произведения. Позже от лица Алисы будет закомичен вывод произведения
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git commit -a -m "добавил вывод частного"
|
|
|
|
|
|
|
|
[main 61a74a7] добавил вывод частного
|
|
|
|
|
|
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git push
|
|
|
|
|
|
|
|
Enumerating objects: 5, done.
|
|
|
|
|
|
|
|
Counting objects: 100% (5/5), done.
|
|
|
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
|
|
|
Compressing objects: 100% (3/3), done.
|
|
|
|
|
|
|
|
Writing objects: 100% (3/3), 402 bytes | 402.00 KiB/s, done.
|
|
|
|
|
|
|
|
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
|
|
|
To http://uit.mpei.ru/git/KovalenkoDM/cs-lab02.git
|
|
|
|
|
|
|
|
7af6274..61a74a7 main -> main
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24. На машине Алисы загрузим изменения Боба
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % 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), 382 bytes | 95.00 KiB/s, done.
|
|
|
|
|
|
|
|
From http://uit.mpei.ru/git/KovalenkoDM/cs-lab02
|
|
|
|
|
|
|
|
7af6274..61a74a7 main -> origin/main
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git log --oneline --decorate --all --graph
|
|
|
|
|
|
|
|
* 61a74a7 (origin/main) добавил вывод частного
|
|
|
|
|
|
|
|
* 7af6274 (HEAD -> main) git
|
|
|
|
|
|
|
|
* 00bf724 fix
|
|
|
|
|
|
|
|
* af0c01e Добавил вывод разности
|
|
|
|
|
|
|
|
* b6b4301 Добавил вывод суммы
|
|
|
|
|
|
|
|
* 5f0ca26 code: заготовка программы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git pull --ff-only
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Updating 7af6274..61a74a7
|
|
|
|
|
|
|
|
Fast-forward
|
|
|
|
|
|
|
|
main.cpp | 4 +++-
|
|
|
|
|
|
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
После введения первой команды земетим, что в рабочей копии изменений еще не произошло
|
|
|
|
|
|
|
|
Просмотрим историю и увидим, ветка `main` отстает на один коммит от ветки `origin/main`
|
|
|
|
|
|
|
|
Пододвинем `main` к скачанной версии
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25. Добавим в программу вывод произведения, закоммитим и отправим на сервер
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git commit -a -m "добавил вывод произведения"
|
|
|
|
|
|
|
|
[main b8ceb47] добавил вывод произведения
|
|
|
|
|
|
|
|
1 file changed, 1 insertion(+)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git push
|
|
|
|
|
|
|
|
Enumerating objects: 5, done.
|
|
|
|
|
|
|
|
Counting objects: 100% (5/5), done.
|
|
|
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
|
|
|
Compressing objects: 100% (3/3), done.
|
|
|
|
|
|
|
|
Writing objects: 100% (3/3), 377 bytes | 377.00 KiB/s, done.
|
|
|
|
|
|
|
|
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
|
|
|
To http://uit.mpei.ru/git/KovalenkoDM/cs-lab02.git
|
|
|
|
|
|
|
|
61a74a7..b8ceb47 main -> main
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26. У Боба. Загрузим изменения Алисы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % 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), 357 bytes | 22.00 KiB/s, done.
|
|
|
|
|
|
|
|
From http://uit.mpei.ru/git/KovalenkoDM/cs-lab02
|
|
|
|
|
|
|
|
61a74a7..b8ceb47 main -> origin/main
|
|
|
|
|
|
|
|
Updating 61a74a7..b8ceb47
|
|
|
|
|
|
|
|
Fast-forward
|
|
|
|
|
|
|
|
main.cpp | 1 +
|
|
|
|
|
|
|
|
1 file changed, 1 insertion(+)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27. У Алисы. Дополним программу выводом максимума, закоммитим и отправим на сервер
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git commit -a -m "Добавил вывод максимума"
|
|
|
|
|
|
|
|
[main a89f5fb] Добавил вывод максимума
|
|
|
|
|
|
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git push
|
|
|
|
|
|
|
|
Enumerating objects: 5, done.
|
|
|
|
|
|
|
|
Counting objects: 100% (5/5), done.
|
|
|
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
|
|
|
Compressing objects: 100% (3/3), done.
|
|
|
|
|
|
|
|
Writing objects: 100% (3/3), 412 bytes | 412.00 KiB/s, done.
|
|
|
|
|
|
|
|
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
|
|
|
To http://uit.mpei.ru/git/KovalenkoDM/cs-lab02.git
|
|
|
|
|
|
|
|
b8ceb47..a89f5fb main -> main
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28. На машине Боба:
|
|
|
|
|
|
|
|
Не обновляя локальный репозитарий, добавим вывод минимума, сделаем коммит и попытаемся отправить на сервер
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git commit -a -m "добавил вывод минимума"
|
|
|
|
|
|
|
|
[main 6514e20] добавил вывод минимума
|
|
|
|
|
|
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git push
|
|
|
|
|
|
|
|
To http://uit.mpei.ru/git/KovalenkoDM/cs-lab02.git
|
|
|
|
|
|
|
|
! [rejected] main -> main (non-fast-forward)
|
|
|
|
|
|
|
|
error: failed to push some refs to 'http://uit.mpei.ru/git/KovalenkoDM/cs-lab02.git'
|
|
|
|
|
|
|
|
hint: Updates were rejected because the tip of your current branch is behind
|
|
|
|
|
|
|
|
hint: its remote counterpart. Integrate the remote changes (e.g.
|
|
|
|
|
|
|
|
hint: 'git pull ...') before pushing again.
|
|
|
|
|
|
|
|
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Видно, что Git не дайт этого сделать, так как коммит Боба основан не на последнем существующем коммите
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29. Посмотрим всю историю коммитов, предварительно загрузим их
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git fetch
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git log --oneline --decorate --all --graph
|
|
|
|
|
|
|
|
* 6514e20 (HEAD -> main) добавил вывод минимума
|
|
|
|
|
|
|
|
| * a89f5fb (origin/main, origin/HEAD) Добавил вывод максимума
|
|
|
|
|
|
|
|
|/
|
|
|
|
|
|
|
|
* b8ceb47 добавил вывод произведения
|
|
|
|
|
|
|
|
* 61a74a7 добавил вывод частного
|
|
|
|
|
|
|
|
* 7af6274 git
|
|
|
|
|
|
|
|
* 00bf724 fix
|
|
|
|
|
|
|
|
* af0c01e Добавил вывод разности
|
|
|
|
|
|
|
|
* b6b4301 Добавил вывод суммы
|
|
|
|
|
|
|
|
* 5f0ca26 code: заготовка программы
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Видно, что возник конфликт. Появилось две версии ветки `main`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30. Попытаемся перенести коммит Боба поверх коммита Алисы, то есть поверх origin/main
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git rebase origin/main
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Auto-merging main.cpp
|
|
|
|
|
|
|
|
CONFLICT (content): Merge conflict in main.cpp
|
|
|
|
|
|
|
|
error: could not apply 6514e20... добавил вывод минимума
|
|
|
|
|
|
|
|
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 6514e20... добавил вывод минимума
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Получаем сообщение о конфликте. Необходимо сначала привести код Боба к тому виду, как у Алисы, а потом добавлять его изменения
|
|
|
|
|
|
|
|
Сделаем это вручную
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31. После изменения кода нужно добавить файл и продолжить прерванную операцию rebase
|
|
|
|
|
|
|
|
После этого отправим изменения на сервер
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git add main.cpp
|
|
|
|
|
|
|
|
git rebase --continue
|
|
|
|
|
|
|
|
[detached HEAD 82f9489] добавил вывод минимума
|
|
|
|
|
|
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
Successfully rebased and updated refs/heads/main.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git push
|
|
|
|
|
|
|
|
Enumerating objects: 5, done.
|
|
|
|
|
|
|
|
Counting objects: 100% (5/5), done.
|
|
|
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
|
|
|
Compressing objects: 100% (3/3), done.
|
|
|
|
|
|
|
|
Writing objects: 100% (3/3), 413 bytes | 413.00 KiB/s, done.
|
|
|
|
|
|
|
|
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
|
|
|
To http://uit.mpei.ru/git/KovalenkoDM/cs-lab02.git
|
|
|
|
|
|
|
|
a89f5fb..82f9489 main -> main
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32. Перейдём на машину Алисы. Создадим ветку double и перейдём в неё
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git branch double
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git checkout double
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Switched to branch 'double'
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Видим сообщение о том, что мы перешли на другую ветку
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33. Поменяем типы переменных на `double`, закомиттим и отправим на сервер
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git commit -a -m "изменен тип файлов на double"
|
|
|
|
|
|
|
|
[double 9646d88] изменен тип файлов на double
|
|
|
|
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % 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), 393 bytes | 131.00 KiB/s, done.
|
|
|
|
|
|
|
|
From http://uit.mpei.ru/git/KovalenkoDM/cs-lab02
|
|
|
|
|
|
|
|
a89f5fb..82f9489 main -> origin/main
|
|
|
|
|
|
|
|
Updating a89f5fb..82f9489
|
|
|
|
|
|
|
|
Fast-forward
|
|
|
|
|
|
|
|
main.cpp | 3 ++-
|
|
|
|
|
|
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
34. Перейдём в ветку main, синхронзируем репозитарии и посмотрим историю:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git log --oneline --decorate --all --graph
|
|
|
|
|
|
|
|
* 9646d88 (double) изменен тип файлов на double
|
|
|
|
|
|
|
|
| * 82f9489 (HEAD -> main, origin/main) добавил вывод минимума
|
|
|
|
|
|
|
|
|/
|
|
|
|
|
|
|
|
* a89f5fb Добавил вывод максимума
|
|
|
|
|
|
|
|
* b8ceb47 добавил вывод произведения
|
|
|
|
|
|
|
|
* 61a74a7 добавил вывод частного
|
|
|
|
|
|
|
|
* 7af6274 git
|
|
|
|
|
|
|
|
* 00bf724 fix
|
|
|
|
|
|
|
|
* af0c01e Добавил вывод разности
|
|
|
|
|
|
|
|
* b6b4301 Добавил вывод суммы
|
|
|
|
|
|
|
|
* 5f0ca26 code: заготовка программы
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Видим две вещи:
|
|
|
|
|
|
|
|
1) Версия кода Алисы совпадает с версией кода Боба.
|
|
|
|
|
|
|
|
2) коммит с хэшем `9646d88`, в котором мы меняли тип переменной в другой ветке
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35. Сольём ветку `double` с главной
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git merge double
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Auto-merging main.cpp
|
|
|
|
|
|
|
|
Merge made by the 'ort' strategy.
|
|
|
|
|
|
|
|
main.cpp | 2 +-
|
|
|
|
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36. Попытаемся отправить изменения на сервер, т.к. ранее мы видели, что версии ветки `main` совпадают всё происходит без проблем.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git push
|
|
|
|
|
|
|
|
Enumerating objects: 10, done.
|
|
|
|
|
|
|
|
Counting objects: 100% (10/10), done.
|
|
|
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
|
|
|
Compressing objects: 100% (6/6), done.
|
|
|
|
|
|
|
|
Writing objects: 100% (6/6), 700 bytes | 700.00 KiB/s, done.
|
|
|
|
|
|
|
|
Total 6 (delta 2), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
|
|
|
To http://uit.mpei.ru/git/KovalenkoDM/cs-lab02.git
|
|
|
|
|
|
|
|
82f9489..fcad405 main -> main
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37. Посмотрим историю всех веток репозитария
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
vatarishin@MacBook-Air-Vatari project % git log --oneline --decorate --all --graph
|
|
|
|
|
|
|
|
* fcad405 (HEAD -> main, origin/main) Merge branch 'double' Мерджим ветки
|
|
|
|
|
|
|
|
|\
|
|
|
|
|
|
|
|
| * 9646d88 (double) изменен тип файлов на double
|
|
|
|
|
|
|
|
* | 82f9489 добавил вывод минимума
|
|
|
|
|
|
|
|
|/
|
|
|
|
|
|
|
|
* a89f5fb Добавил вывод максимума
|
|
|
|
|
|
|
|
* b8ceb47 добавил вывод произведения
|
|
|
|
|
|
|
|
* 61a74a7 добавил вывод частного
|
|
|
|
|
|
|
|
* 7af6274 git
|
|
|
|
|
|
|
|
* 00bf724 fix
|
|
|
|
|
|
|
|
* af0c01e Добавил вывод разности
|
|
|
|
|
|
|
|
* b6b4301 Добавил вывод суммы
|
|
|
|
|
|
|
|
* 5f0ca26 code: заготовка программы
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Видно, что два предпоследних коммита находятся в другой ветке
|
|
|
|
|
|
|
|
А последний коммит — слияние веток
|