Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
1492 строки
32 KiB
Plaintext
1492 строки
32 KiB
Plaintext
Отчет по лабораторной работе № 2 "Система контроля версий Git"
|
|
|
|
Выполнил: Капитонов М.А.
|
|
Группа: А-02-23
|
|
|
|
Примечание: работа выполнялась на Windows.
|
|
|
|
1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02
|
|
$
|
|
|
|
|
|
2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто:
|
|
|
|
ivan@HOME-PC MINGW32 /c/Users/ivan/Desktop/lab02
|
|
$ ls
|
|
|
|
|
|
3. Создал каталоги Алисы и Боба, создал каталог "project",
|
|
изучил команду "cd" в процессе:
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02
|
|
$ mkdir alice
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02
|
|
$ mkdir bob
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02
|
|
$ cd alice
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice
|
|
$ mkdir project
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice
|
|
$ ls
|
|
project/
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project
|
|
$ cd ..
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
|
|
|
|
4. Инициализировал репозитарий:
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project
|
|
$ git init
|
|
Initialized empty Git repository in C:/Users/Wks/Desktop/lab02/alice/project/.git/
|
|
|
|
Подсказка не появилась, поэтому поменяю имя ветки после создания первого коммита.
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git config user.name 'Alice (KapitonovMA)'
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git config user.email 'KapitonovMikA@mpei.ru'
|
|
|
|
|
|
5. Создал коммиты
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git status
|
|
On branch master
|
|
|
|
Мы находимся в ветке master
|
|
|
|
No commits yet
|
|
|
|
Коммитов пока нет
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
main.cpp
|
|
project.cbp
|
|
|
|
Показаны неотслеживаемые файлы
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
Ничего не добавлено в коммит, но неотслеживаемые файлы представлены
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git add main.cpp
|
|
|
|
Занесём под Git файл main.cpp
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git branch -m main
|
|
|
|
Поменяем имя ветки master на main
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
|
|
No commits yet
|
|
|
|
Changes to be committed:
|
|
(use "git rm --cached <file>..." to unstage)
|
|
new file: main.cpp
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
project.cbp
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: заготовка программы'
|
|
[main (root-commit) e9a489c] code: заготовка программы
|
|
1 file changed, 9 insertions(+)
|
|
create mode 100644 main.cpp
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add project.cbp
|
|
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'build: добавление файла проекта'
|
|
[main 8dab618] build: добавление файла проекта
|
|
1 file changed, 40 insertions(+)
|
|
create mode 100644 project.cbp
|
|
|
|
Wks@Miker 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")
|
|
|
|
|
|
6. Добавил игнорирование файлов
|
|
|
|
Wks@Miker 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)
|
|
.gitignore
|
|
obj/
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
Wks@Miker 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)
|
|
.gitignore
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add .gitignore
|
|
|
|
Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'git: добавление игнорирования файлов'
|
|
[main 327c540] git: добавление игнорирования файлов
|
|
1 file changed, 2 insertions(+)
|
|
create mode 100644 .gitignore
|
|
|
|
|
|
7. Начнем отслеживать файл main.cpp и еще раз просмотрим состояние рабочей копии
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH 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
|
|
|
|
|
|
|
|
Видим, что Git начал отслеживать изменения в файле main.cpp
|
|
|
|
|
|
|
|
8. Выполним первый коммит с этим файлом
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
|
|
$ git commit -m 'code: заготовка программы'
|
|
|
|
[master (root-commit) 1475f95] code: заготовка программы
|
|
|
|
1 file changed, 9 insertions(+)
|
|
|
|
create mode 100644 main.cpp
|
|
|
|
|
|
|
|
|
|
9. Занесли файл project.cbp в индекс и выполнили коммит с ним
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git add project.cbp
|
|
|
|
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git commit -m 'build: добавлен файл проетка'
|
|
|
|
[main 39e0c8c] build: добавлен файл проетка
|
|
|
|
1 file changed, 40 insertions(+)
|
|
|
|
create mode 100644 project.cbp
|
|
|
|
|
|
|
|
10. Заменили тело функции на ввод двух чисел и просмотрели еще раз состояние репозитария
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git status
|
|
|
|
On branch main
|
|
|
|
Changes to be committed:
|
|
|
|
(use "git restore --staged <file>..." to unstage)
|
|
|
|
modified: main.cpp
|
|
|
|
|
|
|
|
Untracked files:
|
|
|
|
(use "git add <file>..." to include in what will be committed)
|
|
|
|
bin/
|
|
|
|
obj/
|
|
|
|
|
|
|
|
Теперь Git отследил изменения и указал файл, в котором эти изменения произошли.
|
|
|
|
И в отличии от случая, когда создавался новый файл, Git пишет не "new file: ", а "modified: ".
|
|
|
|
Кроме этого предлагает другую команду, чтобы отменить загрузку.
|
|
|
|
|
|
|
|
11. Создал 3 коммита с изменениями разными способами.
|
|
|
|
а) Закоммитила изменение в теле функции
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git commit -m 'code: длбавлен ввод двух чисел'
|
|
|
|
[main d48cf2c] code: длбавлен ввод двух чисел
|
|
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
|
|
|
|
б) Добавил вывод суммы этих чисел
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git add -u
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git commit -m 'code: добавлена сумма'
|
|
|
|
[main 734f5fb] code: добавлена сумма
|
|
|
|
1 file changed, 1 insertion(+)
|
|
|
|
|
|
|
|
в) Добавил вывод разности
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git commit -a -m 'code: добавлена разность'
|
|
|
|
[main 25143e4] code: добавлена разность
|
|
|
|
1 file changed, 1 insertion(+)
|
|
|
|
|
|
|
|
12. Создал в корне репозитария файл .gitignore, который позволяет Git игнорировать некоторые каталоги, и сделал с ним коммит.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git add .gitignore
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git commit -m 'git: добавлено игнорирование файлов'
|
|
|
|
[main 7d246af] git: добавлено игнорирование файлов
|
|
|
|
1 file changed, 3 insertions(+)
|
|
|
|
create mode 100644 .gitignore
|
|
|
|
|
|
|
|
13. Просмотрим историю
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git log --stat
|
|
|
|
commit 7d246af3e9e749439f33d22d570d3b05b1b755ce (HEAD -> main)
|
|
|
|
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
|
|
|
|
Date: Sun Apr 7 19:19:47 2024 +0300
|
|
|
|
|
|
|
|
git: добавлено игнорирование файлов
|
|
|
|
|
|
|
|
.gitignore | 3 +++
|
|
|
|
1 file changed, 3 insertions(+)
|
|
|
|
|
|
|
|
commit 25143e4c234f2bd80487977386eb15afa27db3c9
|
|
|
|
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
|
|
|
|
Date: Sun Apr 7 18:56:37 2024 +0300
|
|
|
|
|
|
|
|
code: добавлена разность
|
|
|
|
|
|
|
|
main.cpp | 1 +
|
|
|
|
1 file changed, 1 insertion(+)
|
|
|
|
|
|
|
|
commit 734f5fb608db6e5f8e0610d59582a02a697d5584
|
|
|
|
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
|
|
|
|
Date: Sun Apr 7 18:54:26 2024 +0300
|
|
|
|
|
|
|
|
code: добавлена сумма
|
|
|
|
|
|
|
|
Рассмотрим последний коммит. Мы можем видеть информацию о том, кто сделал последний коммит и когда.
|
|
|
|
Команда также показывает нам сколько файлов было изменено, название файла с изменениями, тему коммита и наш комментарий к нему.
|
|
|
|
А также количество изменений.
|
|
|
|
|
|
|
|
Просмотрим историю с помощью других комманд:
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git log --grep 'build'
|
|
|
|
commit 39e0c8ce15c50bb4aed2922172323a934853f589
|
|
|
|
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
|
|
|
|
Date: Sun Apr 7 18:39:45 2024 +0300
|
|
|
|
|
|
|
|
build: добавлен файл проетка
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git log -- project.cbp
|
|
|
|
commit 39e0c8ce15c50bb4aed2922172323a934853f589
|
|
|
|
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
|
|
|
|
Date: Sun Apr 7 18:39:45 2024 +0300
|
|
|
|
|
|
|
|
build: добавлен файл проетка
|
|
|
|
|
|
|
|
14. Отдельно просмотрим предпоследний коммит.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git show HEAD~1
|
|
|
|
commit 25143e4c234f2bd80487977386eb15afa27db3c9
|
|
|
|
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
|
|
|
|
Date: Sun Apr 7 18:56:37 2024 +0300
|
|
|
|
|
|
|
|
code: добавлена разность
|
|
|
|
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
|
|
index 778abf0..a392737 100644
|
|
|
|
--- a/main.cpp
|
|
|
|
+++ b/main.cpp
|
|
|
|
@@ -8,4 +8,5 @@ int main()
|
|
|
|
int a, b;
|
|
|
|
cin >> a >> b;
|
|
|
|
cout << " A + B = " << a + b << '\n';
|
|
|
|
+ cout << " A - B = " << a - b << '\n';
|
|
|
|
}
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git show 25143e4
|
|
|
|
commit 25143e4c234f2bd80487977386eb15afa27db3c9
|
|
|
|
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
|
|
|
|
Date: Sun Apr 7 18:56:37 2024 +0300
|
|
|
|
|
|
|
|
code: добавлена разность
|
|
|
|
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
|
|
index 778abf0..a392737 100644
|
|
|
|
--- a/main.cpp
|
|
|
|
+++ b/main.cpp
|
|
|
|
@@ -8,4 +8,5 @@ int main()
|
|
|
|
int a, b;
|
|
|
|
cin >> a >> b;
|
|
|
|
cout << " A + B = " << a + b << '\n';
|
|
|
|
+ cout << " A - B = " << a - b << '\n';
|
|
|
|
}
|
|
|
|
|
|
|
|
15. Внесем изменение в программу без выполнения коммита и посмотрим эти изменения
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git diff
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
|
|
index a392737..5e034ec 100644
|
|
|
|
--- a/main.cpp
|
|
|
|
+++ b/main.cpp
|
|
|
|
@@ -4,9 +4,10 @@ using namespace std;
|
|
|
|
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
- cout << "Enter A and B: ";
|
|
|
|
+ cout << "Enter A and B: " << endl;
|
|
|
|
int a, b;
|
|
|
|
cin >> a >> b;
|
|
|
|
cout << " A + B = " << a + b << '\n';
|
|
|
|
cout << " A - B = " << a - b << '\n';
|
|
|
|
+ cout << " A * B = " << a * b << '\n';
|
|
|
|
}
|
|
|
|
|
|
|
|
Сначала Git указывает, что будет сравнивать, затем отображает сколько изменений он обнаружил и в конце указывает сами эти изменения.
|
|
|
|
|
|
|
|
Просмотрим изменения между двумя данными коммитами
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git diff HEAD~5 HEAD~1
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
|
|
index b4392ec..a392737 100644
|
|
|
|
--- a/main.cpp
|
|
|
|
+++ b/main.cpp
|
|
|
|
@@ -4,6 +4,9 @@ using namespace std;
|
|
|
|
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
- cout << "Hello world!" << endl;
|
|
|
|
- return 0;
|
|
|
|
+ cout << "Enter A and B: ";
|
|
|
|
+ int a, b;
|
|
|
|
+ cin >> a >> b;
|
|
|
|
+ cout << " A + B = " << a + b << '\n';
|
|
|
|
+ cout << " A - B = " << a - b << '\n';
|
|
|
|
}
|
|
|
|
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" ?>
|
|
|
|
|
|
|
|
16. Произвел откат изменений 2мя способами
|
|
|
|
1) Закоммитила вывод произведения, а затем отменим этот коммит.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git commit -m 'code: добавлено произведение'
|
|
|
|
[main fa6c80c] code: добавлено произведение
|
|
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git reset --hard HEAD~1
|
|
|
|
HEAD is now at 7d246af git: добавлено игнорирование файлов
|
|
|
|
|
|
|
|
2) Добавил комментарий в программу, а затем снова вернулся к последнему коммиту.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git checkout HEAD -- main.cpp
|
|
|
|
|
|
|
|
17. Зарегестрировался на Git УИТ. Затем создал пару ключей и запустил агент, чтобы не вводить ключ каждый раз заново.
|
|
|
|
Затем добавил ключ в список открытых ключей моей учетной записи.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ ssh-keygen
|
|
|
|
Generating public/private ed25519 key pair.
|
|
|
|
Enter file in which to save the key (/c/Users/LENOVO/.ssh/id_ed25519):
|
|
|
|
/c/Users/LENOVO/.ssh/id_ed25519 already exists.
|
|
|
|
Overwrite (y/n)? y
|
|
|
|
Enter passphrase (empty for no passphrase):
|
|
|
|
Enter same passphrase again:
|
|
|
|
Your identification has been saved in /c/Users/LENOVO/.ssh/id_ed25519
|
|
|
|
Your public key has been saved in /c/Users/LENOVO/.ssh/id_ed25519.pub
|
|
|
|
The key fingerprint is:
|
|
|
|
SHA256:PqVxNsabfSwV2JkR7DUfF+/LCLQYjNTaqU65DSeNdS4 LENOVO@DESKTOP-MLIFKLH
|
|
|
|
The key's randomart image is:
|
|
|
|
+--[ED25519 256]--+
|
|
|
|
| .. .oo.|
|
|
|
|
| . o. o.*+|
|
|
|
|
| .oo....=.*|
|
|
|
|
| . =+.. .o.|
|
|
|
|
| S.Xo . .|
|
|
|
|
| O E *.oo .|
|
|
|
|
| o X + o.oo |
|
|
|
|
| o o o |
|
|
|
|
| |
|
|
|
|
+----[SHA256]-----+
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ eval $(ssh-agent -s)
|
|
|
|
Agent pid 593
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ ssh-add
|
|
|
|
Enter passphrase for /c/Users/LENOVO/.ssh/id_ed25519:
|
|
|
|
Identity added: /c/Users/LENOVO/.ssh/id_ed25519 (LENOVO@DESKTOP-MLIFKLH)
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ cat ~/.ssh/id_ed25519.pub
|
|
|
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILNxZ2NZmRO53H8KUbNvBsOqkeGGywsMSRv8S7lFfP7Y LENOVO@DESKTOP-MLIFKLH
|
|
|
|
|
|
|
|
18. Создал новый репозитарий и настроил связь с удаленным хранилищем.
|
|
|
|
И так как я работал не в лаборатории, то для взаимодействия с сервером произвела по протоколу HTTP
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git remote add origin http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH 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 8 threads
|
|
|
|
Compressing objects: 100% (16/16), done.
|
|
|
|
Writing objects: 100% (18/18), 2.36 KiB | 1.18 MiB/s, done.
|
|
|
|
Total 18 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
|
|
|
|
remote: . Processing 1 references
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
To http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git
|
|
|
|
* [new branch] main -> main
|
|
|
|
branch 'main' set up to track 'origin/main'.
|
|
|
|
|
|
|
|
19. Открыл терминал Git Bash в каталоге Боба и клонировал туда проект.
|
|
|
|
А затем перешёл в каталог project.
|
|
|
|
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob
|
|
|
|
$ git clone http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git project
|
|
|
|
Cloning into 'project'...
|
|
|
|
remote: Enumerating objects: 18, done.
|
|
|
|
remote: Counting objects: 100% (18/18), done.
|
|
|
|
remote: Compressing objects: 100% (16/16), done.
|
|
|
|
remote: Total 18 (delta 2), reused 0 (delta 0), pack-reused 0
|
|
|
|
Receiving objects: 100% (18/18), done.
|
|
|
|
Resolving deltas: 100% (2/2), done.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob
|
|
|
|
$ cd project
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$
|
|
|
|
|
|
|
|
20. Как и в случае с Алисой, настраиваю репозитарий Боба
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git config user.name 'Bob (KapitonovMikA)'
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git config user.email 'KapitonovMikA@mpei.ru'
|
|
|
|
|
|
|
|
21. Добавил печать произведения чисел в программу и сделал коммит от лица Боба.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git commit -m 'code: добавили произведение'
|
|
|
|
[main c19ba2d] code: добавили произведение
|
|
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
Здесь я убедился, что коммит выполнен от лица Боба
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git show HEAD
|
|
|
|
commit c19ba2d2f3720d87bbaae1edc0e0db0f49306766 (HEAD -> main)
|
|
|
|
Author: Bob (KapitonovMikA) <KapitonovMikA@mpei.ru>
|
|
|
|
Date: Sun Apr 7 19:59:54 2024 +0300
|
|
|
|
|
|
|
|
code: добавили произведение
|
|
|
|
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
|
|
index a392737..5e034ec 100644
|
|
|
|
--- a/main.cpp
|
|
|
|
+++ b/main.cpp
|
|
|
|
@@ -4,9 +4,10 @@ using namespace std;
|
|
|
|
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
- cout << "Enter A and B: ";
|
|
|
|
+ cout << "Enter A and B: " << endl;
|
|
|
|
int a, b;
|
|
|
|
cin >> a >> b;
|
|
|
|
cout << " A + B = " << a + b << '\n';
|
|
|
|
cout << " A - B = " << a - b << '\n';
|
|
|
|
+ cout << " A * B = " << a * b << '\n';
|
|
|
|
}
|
|
|
|
|
|
|
|
22. Отправил коммит Боба на сервер, а затем выполнил загрузку изменеий на машине у Алисы.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ 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), 435 bytes | 435.00 KiB/s, done.
|
|
|
|
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
|
|
|
|
remote: . Processing 1 references
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
To http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git
|
|
|
|
7d246af..c19ba2d main -> main
|
|
|
|
|
|
|
|
Загрузка изменений у Алисы
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git fetch
|
|
|
|
remote: Enumerating objects: 5, done.
|
|
|
|
remote: Counting objects: 100% (5/5), done.
|
|
|
|
remote: Compressing objects: 100% (3/3), done.
|
|
|
|
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
|
|
|
|
Unpacking objects: 100% (3/3), 415 bytes | 103.00 KiB/s, done.
|
|
|
|
From http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2
|
|
|
|
7d246af..c19ba2d main -> origin/main
|
|
|
|
|
|
|
|
23. Просмотрим теперь историю всех веток и увидим, что ветка main Алисы отстает от ветки origin/main на один коммит.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git log --oneline --decorate --all --graph
|
|
|
|
* c19ba2d (origin/main) code: добавили произведение
|
|
|
|
* 7d246af (HEAD -> main) git: добавлено игнорирование файлов
|
|
|
|
* 25143e4 code: добавлена разность
|
|
|
|
* 734f5fb code: добавлена сумма
|
|
|
|
* d48cf2c code: длбавлен ввод двух чисел
|
|
|
|
* 39e0c8c build: добавлен файл проетка
|
|
|
|
* 1475f95 code: заготовка программы
|
|
|
|
|
|
|
|
Продвигаем эту ветку к скачанной версии.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git pull --ff-only
|
|
|
|
Updating 7d246af..c19ba2d
|
|
|
|
Fast-forward
|
|
|
|
main.cpp | 3 ++-
|
|
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
24. Проделаем те же шаги о лица Алисы. Добавим в программу печать деления и сделаем коммит.
|
|
|
|
Затем получим новую версию у боба.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git commit -m 'code: добавили деление'
|
|
|
|
[main 18f885b] code: добавили деление
|
|
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ 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), 437 bytes | 437.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 http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2.git
|
|
|
|
c19ba2d..18f885b main -> main
|
|
|
|
|
|
|
|
У Боба:
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH 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), 417 bytes | 34.00 KiB/s, done.
|
|
|
|
From http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2
|
|
|
|
c19ba2d..18f885b main -> origin/main
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git pull --ff-only
|
|
|
|
Updating c19ba2d..18f885b
|
|
|
|
Fast-forward
|
|
|
|
main.cpp | 6 +++++-
|
|
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
25. На машине у Алисы добавляем в программу печать максимума, делаем коммит и отправляем на сервер.
|
|
|
|
На машине у Боба добавлем печать минимума, делаем коммит и тоже пытаемся отправить на сервер.
|
|
|
|
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git commit -m 'code: добавили вывод максимума'
|
|
|
|
[main 0a9f112] code: добавили вывод максимума
|
|
|
|
1 file changed, 5 insertions(+)
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ 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), 452 bytes | 452.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 http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git
|
|
|
|
18f885b..0a9f112 main -> main
|
|
|
|
|
|
|
|
На машине у Боба:
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git commit -m 'code: добавили вывод минимума'
|
|
|
|
[main 3918cc6] code: добавили вывод минимума
|
|
|
|
1 file changed, 5 insertions(+)
|
|
|
|
|
|
|
|
При попытке отправить на сервер, выдается ошибка
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git push
|
|
|
|
To http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git
|
|
|
|
! [rejected] main -> main (fetch first)
|
|
|
|
error: failed to push some refs to 'http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2.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.
|
|
|
|
|
|
|
|
|
|
|
|
26. Разрешение конфликта
|
|
|
|
От лица Боба загружаю коммиты из удалённого хранилища
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH 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), 432 bytes | 54.00 KiB/s, done.
|
|
|
|
From http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2
|
|
|
|
18f885b..0a9f112 main -> origin/main
|
|
|
|
|
|
|
|
Просмотрим теперь историю всех веток:
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git log --oneline --decorate --all --graph
|
|
|
|
* 3918cc6 (HEAD -> main) code: добавили вывод минимума
|
|
|
|
| * 0a9f112 (origin/main, origin/HEAD) code: добавили вывод максимума
|
|
|
|
|/
|
|
|
|
* 18f885b code: добавили деление
|
|
|
|
* c19ba2d code: добавили произведение
|
|
|
|
* 7d246af git: добавлено игнорирование файлов
|
|
|
|
* 25143e4 code: добавлена разность
|
|
|
|
* 734f5fb code: добавлена сумма
|
|
|
|
* d48cf2c code: длбавлен ввод двух чисел
|
|
|
|
* 39e0c8c build: добавлен файл проетка
|
|
|
|
* 1475f95 code: заготовка программы
|
|
|
|
|
|
|
|
Можно видеть, как ветка main Боба разошлась с главной веткой на сервере.
|
|
|
|
На машине Боба вношу изменения в файл, чтобы разрешить конфликт.
|
|
|
|
Выполняю коммит от лица Боба и перемещаю коммит его поверх коммита Алисы.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git rebase origin/main
|
|
|
|
Auto-merging main.cpp
|
|
|
|
CONFLICT (content): Merge conflict in main.cpp
|
|
|
|
error: could not apply 3918cc6... 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 3918cc6... code: добавили вывод минимума
|
|
|
|
|
|
|
|
Просмотрим состояние хранилища:
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git status
|
|
|
|
On branch main
|
|
|
|
Your branch is ahead of 'origin/main' by 1 commit.
|
|
|
|
(use "git push" to publish your local commits)
|
|
|
|
|
|
|
|
Untracked files:
|
|
|
|
(use "git add <file>..." to include in what will be committed)
|
|
|
|
project.depend
|
|
|
|
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ git log --oneline --decorate --all --graph
|
|
|
|
* d0f1b71 (HEAD -> main) code: добавили вывод минимума
|
|
|
|
* 0a9f112 (origin/main, origin/HEAD) code: добавили вывод максимума
|
|
|
|
* 18f885b code: добавили деление
|
|
|
|
* c19ba2d code: добавили произведение
|
|
|
|
* 7d246af git: добавлено игнорирование файлов
|
|
|
|
* 25143e4 code: добавлена разность
|
|
|
|
* 734f5fb code: добавлена сумма
|
|
|
|
* d48cf2c code: длбавлен ввод двух чисел
|
|
|
|
* 39e0c8c build: добавлен файл проетка
|
|
|
|
* 1475f95 code: заготовка программы
|
|
|
|
|
|
|
|
Отправила итоговые изменения на сервер.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
|
|
$ 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), 439 bytes | 439.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 http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2.git
|
|
|
|
0a9f112..d0f1b71 main -> main
|
|
|
|
|
|
|
|
|
|
|
|
27. Использование веток
|
|
|
|
на машине Алисы создал ветку double и переключился на неё.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git branch double
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ git checkout double
|
|
|
|
Switched to branch 'double'
|
|
|
|
|
|
|
|
Затем, добавляю от лица Алисы изменения в программу: изменил тип переменных a и b с int на double.
|
|
|
|
Выполнил коммит.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
|
|
$ git commit -m 'code: изменили тип данных a и b'
|
|
|
|
[double b770b59] code: изменили тип данных a и b
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
|
|
И снова переключился на ветку main
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
|
|
$ git checkout main
|
|
|
|
Switched to branch 'main'
|
|
|
|
Your branch is up to date with 'origin/main'.
|
|
|
|
|
|
|
|
Синхронизировал эту ветку с сервером и отправил на сервер.
|
|
|
|
|
|
|
|
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
|
|
$ 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), 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 http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git
|
|
|
|
d0f1b71..1f72fbd main -> main
|