Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
982 строки
40 KiB
Plaintext
982 строки
40 KiB
Plaintext
Отчет по лабораторной работе № 2 "Система контроля версий Git"
|
|
|
|
Выполнил: Артюшина В. В.
|
|
Группа: А-01-22
|
|
Проверил:
|
|
|
|
Примечание: работа выполнялась на Windows.
|
|
|
|
1. Создала на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02
|
|
$
|
|
|
|
|
|
2. Просмотрела файлы в рабочем каталоге командой "ls" --- пусто:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02
|
|
$ ls
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02
|
|
$
|
|
|
|
|
|
3. Создала каталоги Алисы и Боба, создала каталог "project",
|
|
изучила команду "cd" в процессе:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02
|
|
$ mkdir alice
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02
|
|
$ mkdir bob
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02
|
|
$ cd alice
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice
|
|
$ mkdir project
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice
|
|
$ ls
|
|
project/
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project
|
|
$ cd ..
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
|
|
|
|
|
|
4. Инициализировала репозитарий:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project
|
|
$ git init
|
|
Initialized empty Git repository in C:/Users/Laptop/Desktop/lab02/alice/project/.git/
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$
|
|
|
|
//У меня имя ветки по умолчанию не настроено. Git создал ветку под названием master, что видно в приглашении терминала.
|
|
//Поменяю имя ветки на main командой git branch -m main:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git branch -m main
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$
|
|
|
|
|
|
5. Настроила репозитарий Алисы, чтобы коммиты были от ее имени:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git config user.name 'Alice (ArtyushinaVV)'
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git config user.email 'ArtiushinaVV@mpei.ru'
|
|
|
|
|
|
|
|
6. Просмотрела состояние рабочей копии:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
|
|
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)
|
|
|
|
//
|
|
On branch main - ссылка HEAD указывает на ветку main
|
|
No commits yet - говорит о том, что еще не было создано коммитов
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
main.cpp
|
|
project.cbp - показывает не отслеживаемые файлы в хранилище git, и подсказывает как их добавить
|
|
nothing added to commit but untracked files present (use "git add" to track) - говорит о том, что нет добавленных (отслеживаемых) файлов, которые можно будет закоммитить
|
|
|
|
|
|
//Занесла под Git файл main.cpp (в набор изменений)
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
Laptop@Artyushina 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
|
|
|
|
//
|
|
Changes to be committed:
|
|
(use "git rm --cached <file>..." to unstage)
|
|
new file: main.cpp - Появилась строка с файлами в индексе, стоящими в очереди на коммит (так же подсказка для удаления)
|
|
|
|
//Выполнила коммит с файлом main.cpp и коротким сообщением:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: заготовка программы'
|
|
[main (root-commit) 8949472] code: заготовка программы
|
|
1 file changed, 9 insertions(+)
|
|
create mode 100644 main.cpp
|
|
|
|
|
|
7. Добавила файл project.cbp в индекс и сделала коммит с ним, тема — build.
|
|
Сообщение после темы по смыслу изменений - «add project file»:
|
|
|
|
|
|
Laptop@Artyushina 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
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'build: add project file'
|
|
[main d331978] build: add project file
|
|
1 file changed, 38 insertions(+)
|
|
create mode 100644 project.cbp
|
|
|
|
|
|
8. Заменила тело функции main() на ввод двух чисел и посмотрела состояние репозитария:
|
|
|
|
|
|
Laptop@Artyushina 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")
|
|
|
|
//После добавления в программу ввода 2х чисел появилась строка о том, что файл main.cpp был изменен (modified: main.cpp)
|
|
|
|
|
|
9. закоммитила изменения:
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m "code: добавлен вывод суммы a и b в программу"
|
|
[main 88129fe] code: добавлен вывод суммы a и b в программу
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add -u
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m "code: добавлен вывод разности a и b в программу"
|
|
[main f91e880] code: добавлен вывод разности a и b в программу
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
10. Занесла в список игнорируемых каталог bin:
|
|
|
|
Laptop@Artyushina 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: project.cbp
|
|
|
|
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")
|
|
|
|
//можно видеть, что каталог bin не отображается.
|
|
|
|
//Занесла в список игнорируемых каталог obj:
|
|
|
|
Laptop@Artyushina 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: project.cbp
|
|
|
|
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")
|
|
|
|
//Занесла под контроль версий файл .gitignore. Создала коммит с .gitignore, тема — git.
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add .gitignore
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'git: ignore 2 files'
|
|
[main e918026] git: ignore 2 files
|
|
1 file changed, 3 insertions(+)
|
|
create mode 100644 .gitignore
|
|
|
|
|
|
11. С помощью команды git log и различных ее опций просматриваем журнал коммитов:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log
|
|
commit e9180262fd84bc617f3b3e6f03ac6b5e5171c398 (HEAD -> main)
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 17:02:01 2023 +0300
|
|
|
|
git: ignore 2 files
|
|
|
|
commit f91e880ba8f124b920300cd8abb56b888d678bf4
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 16:26:58 2023 +0300
|
|
|
|
code: добавлен вывод разности a и b в программу
|
|
|
|
commit 88129fed9eb9ecbb8a814c3ba4b60e4259ff459e
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 16:24:32 2023 +0300
|
|
|
|
code: добавлен вывод суммы a и b в программу
|
|
|
|
commit d331978afd0359a95155a8961817e82320b3c8b6
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 16:20:44 2023 +0300
|
|
|
|
build: add project file
|
|
|
|
commit 89494727e0cfd75e78112f44225bfd6903a52fd9
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 16:19:03 2023 +0300
|
|
|
|
code: заготовка программы
|
|
|
|
// используем команду git log --stat:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --stat
|
|
commit e9180262fd84bc617f3b3e6f03ac6b5e5171c398 (HEAD -> main)
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 17:02:01 2023 +0300
|
|
|
|
git: ignore 2 files
|
|
|
|
.gitignore | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
commit f91e880ba8f124b920300cd8abb56b888d678bf4
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 16:26:58 2023 +0300
|
|
|
|
code: добавлен вывод разности a и b в программу
|
|
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
commit 88129fed9eb9ecbb8a814c3ba4b60e4259ff459e
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 16:24:32 2023 +0300
|
|
|
|
code: добавлен вывод суммы a и b в программу
|
|
|
|
main.cpp | 6 ++++--
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
commit d331978afd0359a95155a8961817e82320b3c8b6
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 16:20:44 2023 +0300
|
|
|
|
build: add project file
|
|
|
|
project.cbp | 38 ++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 38 insertions(+)
|
|
|
|
commit 89494727e0cfd75e78112f44225bfd6903a52fd9
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 16:19:03 2023 +0300
|
|
|
|
code: заготовка программы
|
|
|
|
main.cpp | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
|
|
//
|
|
В последнем коммите:
|
|
commit e9180262fd84bc617f3b3e6f03ac6b5e5171c398 (HEAD -> main) - показывается хэш коммита, по которому можно потом найти этот коммит
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru> - записан автор, внесший этот коммит
|
|
Date: Sat Mar 25 17:02:01 2023 +0300 – время создания коммита
|
|
git: ignore 2 files - комментарий к коммиту
|
|
.gitignore | 3 +++ - перечисление файлов, в которых произошли изменения и кол-во измененных строчек(“+” добавленная стр., “-” удаленная стр.)
|
|
1 file changed, 3 insertions(+) - приведена статистика изменений данных файлов
|
|
|
|
|
|
//git log --oneline --decorate показывает коммиты компактно (--oneline), а также показывает ссылки, концы веток и тэги (--decorate):
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate
|
|
e918026 (HEAD -> main) git: ignore 2 files
|
|
f91e880 code: добавлен вывод разности a и b в программу
|
|
88129fe code: добавлен вывод суммы a и b в программу
|
|
d331978 build: add project file
|
|
8949472 code: заготовка программы
|
|
|
|
|
|
//git log --oneline --decorate --all --graph делает то же для всех веток (--all), причем коммиты отображаются в терминале в виде дерева (--graph).
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* e918026 (HEAD -> main) git: ignore 2 files
|
|
* f91e880 code: добавлен вывод разности a и b в программу
|
|
* 88129fe code: добавлен вывод суммы a и b в программу
|
|
* d331978 build: add project file
|
|
* 8949472 code: заготовка программы
|
|
|
|
|
|
// Просмотрела информацию о коммите по измененному файлу и по теме коммита (используя команды для просмотра отдельных коммитов git log -- project.cbp и git log --grep "build:"):
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --grep "build:"
|
|
commit d331978afd0359a95155a8961817e82320b3c8b6
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 16:20:44 2023 +0300
|
|
|
|
build: add project file
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log -- project.cbp
|
|
commit d331978afd0359a95155a8961817e82320b3c8b6
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 16:20:44 2023 +0300
|
|
|
|
build: add project file
|
|
|
|
// Тремя способами просмотрела информацию о предпоследнем коммите (результат всех способов один, поэтому в отчете не повторялся):
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show HEAD~1
|
|
commit f91e880ba8f124b920300cd8abb56b888d678bf4
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sat Mar 25 16:26:58 2023 +0300
|
|
|
|
code: добавлен вывод разности a и b в программу
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 6f95b60..eae9f61 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,5 +7,6 @@ int main()
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
- cout << "A + B = " << a + b << '\n';
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
}
|
|
|
|
|
|
//Добавиа изменения в рабочую копию и посмотрела их с помощью команды git diff:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff
|
|
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
|
|
diff --git a/main.cpp b/main.cpp
|
|
index eae9f61..6660c64 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -8,5 +8,6 @@ int main()
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
- << "A - B = " << a - b << '\n';
|
|
+ << "A - B = " << a - b << '\n'
|
|
+ << "A * B = " << a * b << '\n';
|
|
}
|
|
diff --git a/project.cbp b/project.cbp
|
|
index c4697a9..17c9662 100644
|
|
--- a/project.cbp
|
|
+++ b/project.cbp
|
|
@@ -32,6 +32,7 @@
|
|
<Add option="-Wall" />
|
|
<Add option="-fexceptions" />
|
|
</Compiler>
|
|
+ <Unit filename=".gitignore" />
|
|
<Unit filename="main.cpp" />
|
|
<Extensions />
|
|
</Project>
|
|
|
|
|
|
//
|
|
diff --git a/main.cpp b/main.cpp - входные данные команды для сравнения файлов
|
|
index eae9f61..6660c64 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp - заголовок с легендой изменения, место измененного кода и измененная функция
|
|
На следующей строке идут строки вокруг измененной части, удаленные и добавленные строки
|
|
|
|
|
|
|
|
//Просмотрела изменения между самым первым коммитом и коммитом, добавляющим вывод разности:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff 89494727e0cfd75e78112f44225bfd6903a52fd9 f91e880ba8f124b920300cd8abb56b888d678bf4
|
|
diff --git a/main.cpp b/main.cpp
|
|
index b4392ec..eae9f61 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -4,6 +4,9 @@ using namespace std;
|
|
|
|
int main()
|
|
{
|
|
- cout << "Hello world!" << endl;
|
|
- return 0;
|
|
+ cout << "Enter A and B: ";
|
|
+ int a, b;
|
|
+ cin >> a >> b;
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
}
|
|
|
|
|
|
12. Закоммитила изменения в рабочей копии (вывод произведения) и откатила этот коммит, то есть вернулась к предыдущему:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: вывод произведения'
|
|
[main cc26e40] code: вывод произведения
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git reset --hard HEAD~1
|
|
HEAD is now at e918026 git: ignore 2 files
|
|
|
|
//Добавила над функцией main() комментарий: // you may type whatever you want. Убрала изменения в main.cpp откатив этот файл к состоянию в последнем коммите (HEAD):
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git checkout HEAD -- main.cpp
|
|
|
|
|
|
13.Обмен кодом через удалённое хранилище.
|
|
Для загрузки данных в репозитарий GitHub будет использоваться протокол SSH. Поэтому для обмена данными с сервером нужно сгенерировать пару из открытого и закрытого ключей:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ ssh-keygen
|
|
Generating public/private rsa key pair.
|
|
Enter file in which to save the key (/c/Users/Laptop/.ssh/id_rsa):
|
|
Created directory '/c/Users/Laptop/.ssh'.
|
|
Enter passphrase (empty for no passphrase):
|
|
Enter same passphrase again:
|
|
Your identification has been saved in /c/Users/Laptop/.ssh/id_rsa
|
|
Your public key has been saved in /c/Users/Laptop/.ssh/id_rsa.pub
|
|
The key fingerprint is:
|
|
SHA256:RiUsIw8T5/PpISyAaVFmXstcAGJglDlk1pmB1LK/2aU Laptop@Artyushina
|
|
The key's randomart image is:
|
|
+---[RSA 3072]----+
|
|
| .=BO.++... |
|
|
| o.=oO+o.. |
|
|
| ..o B+Xoo . |
|
|
| ..E &+o o |
|
|
| +SB.B |
|
|
| + = . |
|
|
| . . |
|
|
| |
|
|
| |
|
|
+----[SHA256]-----+
|
|
|
|
|
|
|
|
//Также после этого отображаются уникальные данные для ключа.
|
|
Поскольку в работе вводить пароль при каждом использовании ключа может быть неудобно, можно использовать программу-агент, которую достаточно запустить перед началом работы:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ eval $(ssh-agent -s)
|
|
Agent pid 1375
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ ssh-add
|
|
Enter passphrase for /c/Users/Laptop/.ssh/id_rsa:
|
|
Identity added: /c/Users/Laptop/.ssh/id_rsa (Laptop@Artyushina)
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ cat ~/.ssh/id_rsa.pub
|
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDXQoH2jGDw8CsMqG7g9d8gcuTe8RJCfersSDuiZdYuLUihRx9G113a+t4VhfzWxVwOuvOqxoXAFRVthi1BlMF74qXly7vfcGh2oHLGzRZTf4Hoxz/xBL3iWYOcv2qeRXCLmap+ywfBnDig1blWKc6OytcITJ7kunLFgYBn25zA2sLK5fubbPlt7uutuFcRiyen4Qtd7rlwS3RDXXwptH+CD8t2BGGQb34d65I/aczvhwJDfaq/Fy7+GzwDSnZIeL4KT3iPhbEzWXrNcXpJW/Az788HS2x/s7TDZBvAUbydJktWT8y7Lp0uoemLgQHp5W2i+6S8Vv+QWNI2LQAqpFK0/6TvUw2fwSbB2zfuDQwiihdUSmBbnsKkbCwqZJFk6vHR6H/u1OEQo3QOYRVjCNisdvdcJhvt1Hmi5j06lu2/jQgksxa2MKbCaWzzO4iHXZZ9Xv0EOA9GcZBvZisM/DdimfESdwec7e9bbPSuUDpu9saHDyJttWFvcC3UXfMvVHs= Laptop@Artyushina
|
|
|
|
|
|
|
|
//Затем в настройках аккаунта GitHub нужно добавить публичный ключ, который по умолчанию записывается в файл id_rsa.pub.
|
|
Теперь добавим репозитарий на который будем загружать хранилище git, и загрузим хранилище git на GitHub с помощью команды git push:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git remote add origin git@uit.mpei.ru:ArtiushinaVV/cs-lab02.git
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push -u origin main
|
|
Enumerating objects: 15, done.
|
|
Counting objects: 100% (15/15), done.
|
|
Delta compression using up to 8 threads
|
|
Compressing objects: 100% (13/13), done.
|
|
Writing objects: 100% (15/15), 2.01 KiB | 2.01 MiB/s, done.
|
|
Total 15 (delta 1), reused 0 (delta 0), pack-reused 0
|
|
remote: . Processing 1 references
|
|
remote: Processed 1 references in total
|
|
To uit.mpei.ru:ArtiushinaVV/cs-lab02.git
|
|
* [new branch] main -> main
|
|
branch 'main' set up to track 'origin/main'.
|
|
|
|
|
|
//К работе присоединяется боб. Клонировала репозитарий с помощью git clone:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob
|
|
$ git clone git@uit.mpei.ru:ArtiushinaVV/cs-lab02.git project
|
|
Cloning into 'project'...
|
|
remote: Enumerating objects: 15, done.
|
|
remote: Counting objects: 100% (15/15), done.
|
|
remote: Compressing objects: 100% (13/13), done.
|
|
remote: Total 15 (delta 1), reused 0 (delta 0), pack-reused 0
|
|
Receiving objects: 100% (15/15), done.
|
|
Resolving deltas: 100% (1/1), done.
|
|
|
|
|
|
//Настроила хранилище Боба:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git config user.name 'Bob(ArtyushinaVV)'
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git config email.name 'ArtiushinaVV@mpei.ru'
|
|
|
|
|
|
//Боб добавляет новый коммит и загружает его на GitHub:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git add main.cpp
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git commit -m 'code: добавлен вывод произведения a и b'
|
|
[main 20286af] code: добавлен вывод произведения a и b
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
//убедилась, что последний коммит сделан от лица Боба:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git show HEAD
|
|
commit 20286af16bca468f0f5ab970814adf30974a17a9 (HEAD -> main)
|
|
Author: Bob (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sun Mar 26 03:08:22 2023 +0300
|
|
|
|
code: добавлен вывод произведения a и b
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 5371b30..fbd9488 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -8,6 +8,7 @@ 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;
|
|
}
|
|
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa':
|
|
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), 425 bytes | 425.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 uit.mpei.ru:ArtiushinaVV/cs-lab02.git
|
|
b881d3b..20286af main -> main
|
|
|
|
|
|
//Обновила версию программы у Алисы. Для этого загрузила загрузку изменений с помощью git fetch. А затем перенесла ветку main на скачанную версию с помощью git pull:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git fetch
|
|
Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa':
|
|
remote: Enumerating objects: 5, done.
|
|
remote: Counting objects: 100% (5/5), done.
|
|
remote: Compressing objects: 100% (3/3), done.
|
|
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
|
|
Unpacking objects: 100% (3/3), 405 bytes | 57.00 KiB/s, done.
|
|
From uit.mpei.ru:ArtiushinaVV/cs-lab02
|
|
b881d3b..20286af main -> origin/main
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 20286af (origin/main) code: добавлен вывод произведения a и b
|
|
* b881d3b (HEAD -> main) git: ignore 2 files
|
|
* 7f94f09 code: добавлен вывод разности a и b в программу
|
|
* c22b733 code: добавлен вывод суммы a и b в программу
|
|
* 7c316e4 build: add project file
|
|
* b4828db code: заготовка программы
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git pull --ff-only
|
|
Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa':
|
|
Updating b881d3b..20286af
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
//Алиса вносит новое изменение, а Боб его скачивает:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add -u
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: добавлен вывод разности a и b'
|
|
[main 703b6ab] code: добавлен вывод разности a и b
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show HEAD
|
|
commit 703b6ab1cb3f908e6c3a88907f365ad4c0104840 (HEAD -> main)
|
|
Author: Alice (ArtyushinaVV) <ArtiushinaVV@mpei.ru>
|
|
Date: Sun Mar 26 03:14:46 2023 +0300
|
|
|
|
code: добавлен вывод разности a и b
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index fbd9488..862d630 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -9,6 +9,7 @@ int main()
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
<< "A - B = " << a - b << '\n'
|
|
- << "A * B = " << a * b << '\n';
|
|
+ << "A * B = " << a * b << '\n'
|
|
+ << "A / B = " << a / b << '\n';
|
|
return 0;
|
|
}
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa':
|
|
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), 441 bytes | 441.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 uit.mpei.ru:ArtiushinaVV/cs-lab02.git
|
|
20286af..703b6ab main -> main
|
|
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git pull
|
|
Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa':
|
|
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), 421 bytes | 38.00 KiB/s, done.
|
|
From uit.mpei.ru:ArtiushinaVV/cs-lab02
|
|
20286af..703b6ab main -> origin/main
|
|
Updating 20286af..703b6ab
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
//Алиса и Боб добавляют в программу печать максимума и минимума соответственно, а затем пробуют загрузить изменения на репозитарий на сервере:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add -u
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: добавлен вывод максимума'
|
|
[main 6186529] code: добавлен вывод максимума
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa':
|
|
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), 448 bytes | 224.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 uit.mpei.ru:ArtiushinaVV/cs-lab02.git
|
|
703b6ab..6186529 main -> main
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git add -u
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git commit -m 'code: добавлен вывод минимума'
|
|
[main 3101767] code: добавлен вывод минимума
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa':
|
|
To uit.mpei.ru:ArtiushinaVV/cs-lab02.git
|
|
! [rejected] main -> main (fetch first)
|
|
error: failed to push some refs to 'uit.mpei.ru:ArtiushinaVV/cs-lab02.git'
|
|
hint: Updates were rejected because the remote contains work that you do
|
|
hint: not have locally. This is usually caused by another repository pushing
|
|
hint: to the same ref. You may want to first integrate the remote changes
|
|
hint: (e.g., 'git pull ...') before pushing again.
|
|
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
|
|
|
|
|
|
//Однако загрузить на сервер изменения получается только у Алисы потому, что Боб затем пытается загрузить версию, основанную на более старом коммите, чем самый новый коммит в репозитарии GitHub
|
|
|
|
//Загрузила версию с сервера:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git fetch
|
|
Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa':
|
|
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), 428 bytes | 42.00 KiB/s, done.
|
|
From uit.mpei.ru:ArtiushinaVV/cs-lab02
|
|
703b6ab..6186529 main -> origin/main
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 3101767 (HEAD -> main) code: добавлен вывод минимума
|
|
| * 6186529 (origin/main, origin/HEAD) code: добавлен вывод максимума
|
|
|/
|
|
* 703b6ab code: добавлен вывод разности a и b
|
|
* 20286af code: добавлен вывод произведения a и b
|
|
* b881d3b git: ignore 2 files
|
|
* 7f94f09 code: добавлен вывод разности a и b в программу
|
|
* c22b733 code: добавлен вывод суммы a и b в программу
|
|
* 7c316e4 build: add project file
|
|
* b4828db code: заготовка программы
|
|
|
|
|
|
|
|
//Ветка main раздвоилась.
|
|
//Объединила коммиты Боба и Алисы, поместив коммит Боба выше с помощью комманды git rebase:
|
|
|
|
Laptop@Artyushina 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 3101767... 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 3101767... code: добавлен вывод минимума
|
|
|
|
|
|
//Комманда завершается с ошибкой из-за конфликта в файле с кодом main.cpp. Производный файл от файла Алисы и Боба записывается в рабочую копию с помеченными метками конфликта.
|
|
Убрала метки конфликта, и доработала код так, чтобы программа компилировалась и работала. Затем загрузила изменения в индекс и продолжила операцию git rebase, с помощью флага –continue.
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
|
|
$ git add -u
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
|
|
$ git status
|
|
interactive rebase in progress; onto b656125
|
|
Last command done (1 command done):
|
|
pick fe3618f code: добавлен вывод минимума
|
|
No commands remaining.
|
|
You are currently rebasing branch 'main' on 'b656125'.
|
|
(all conflicts fixed: run "git rebase --continue")
|
|
|
|
Changes to be committed:
|
|
(use "git restore --staged <file>..." to unstage)
|
|
modified: project.cpp
|
|
|
|
|
|
$ git rebase --continue
|
|
[detached HEAD 7c29cf1] code: добавлен вывод минимума
|
|
1 file changed, 4 insertions(+)
|
|
Successfully rebased and updated refs/heads/main.
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 7c29cf1 (HEAD -> main) code: добавлен вывод минимума
|
|
* 6186529 (origin/main, origin/HEAD) code: добавлен вывод максимума
|
|
* 703b6ab code: добавлен вывод разности a и b
|
|
* 20286af code: добавлен вывод произведения a и b
|
|
* b881d3b git: ignore 2 files
|
|
* 7f94f09 code: добавлен вывод разности a и b в программу
|
|
* c22b733 code: добавлен вывод суммы a и b в программу
|
|
* 7c316e4 build: add project file
|
|
* b4828db code: заготовка программы
|
|
|
|
|
|
|
|
//Отправила изменения на сервер:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa':
|
|
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), 451 bytes | 451.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 uit.mpei.ru:ArtiushinaVV/cs-lab02.git
|
|
6186529..7c29cf1 main -> main
|
|
|
|
|
|
//В это время Алиса создаёт новую ветку (с помощью комманды git branch) для изменения типа переменных на вещественный.
|
|
Начинает она с коммита, когда добавлена печать максимума:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git branch double
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git checkout double
|
|
Switched to branch 'double'
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git add -u
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git commit -m 'code: изменен тип переменных на вещественный'
|
|
[double 0fbb331] code: изменен тип переменных на вещественный
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
// Затем переключилась на ветку main. И синхронизировала её:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git checkout main
|
|
Switched to branch 'main'
|
|
Your branch is up to date with 'origin/main'.
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git pull
|
|
Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa':
|
|
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), 431 bytes | 53.00 KiB/s, done.
|
|
From uit.mpei.ru:ArtiushinaVV/cs-lab02
|
|
6186529..7c29cf1 main -> origin/main
|
|
Updating 6186529..7c29cf1
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 0fbb331 (double) code: изменен тип переменных на вещественный
|
|
| * 7c29cf1 (HEAD -> main, origin/main) code: добавлен вывод минимума
|
|
|/
|
|
* 6186529 code: добавлен вывод максимума
|
|
* 703b6ab code: добавлен вывод разности a и b
|
|
* 20286af code: добавлен вывод произведения a и b
|
|
* b881d3b git: ignore 2 files
|
|
* 7f94f09 code: добавлен вывод разности a и b в программу
|
|
* c22b733 code: добавлен вывод суммы a и b в программу
|
|
* 7c316e4 build: add project file
|
|
* b4828db code: заготовка программы
|
|
|
|
//Получила одновременно две ветки. Объединила их с помощью комманды git merge. Внесла последние изменения и загрузила на GitHub:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git merge double
|
|
Auto-merging project/project.cpp
|
|
Merge made by the 'ort' strategy.
|
|
main.cpp | 2 +-p to date with 'origin/main'.
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/Laptop/.ssh/id_rsa':
|
|
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), 758 bytes | 758.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 uit.mpei.ru:ArtiushinaVV/cs-lab02.git
|
|
7c29cf1..68f8e53 main -> main
|
|
|
|
//историю всех веток репозитария:
|
|
|
|
Laptop@Artyushina MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 68f8e53 (HEAD -> main, origin/main) Merge branch 'double'
|
|
|\
|
|
| * 0fbb331 (double) code: изменен тип переменных на вещественный
|
|
* | 7c29cf1 code: добавлен вывод минимума
|
|
|/
|
|
* 6186529 code: добавлен вывод максимума
|
|
* 703b6ab code: добавлен вывод разности a и b
|
|
* 20286af code: добавлен вывод произведения a и b
|
|
* b881d3b git: ignore 2 files
|
|
* 7f94f09 code: добавлен вывод разности a и b в программу
|
|
* c22b733 code: добавлен вывод суммы a и b в программу
|
|
* 7c316e4 build: add project file
|
|
* b4828db code: заготовка программы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|