Этот файл содержит невидимые символы Юникода
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Отчет по лабораторной работе № 2 "Система контроля версий Git"

Выполнил: Бережков Д.А.
Группа:   А-03-23
Проверил: Козлюк Д. А.

Примечание: работа выполнялась на Windows.

1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02
$


2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто:

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ ls

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02
$


3. Создал каталоги Алисы и Боба, создал каталог "project",
изучил команду "cd" в процессе:

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir alice

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir bob

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd alice

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ mkdir project

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ cd project

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$ cd ..

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ cd project

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$


4. Инициализировал репозитарий:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/berez/OneDrive/Рабочий стол/lab02/alice/project/.git/

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master)
$
Поскольку у нас новая версия GIT , то меняю имя главной ветки на main.
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master)
$ git branch -m main

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
Для того чтобы посмотреть скрытые файлы и каталоги можно воспользоваться командой:

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ ls -A
.git/

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
Настроил репозитарий алисы:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.name 'Alice (BerezhkovDA)'

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.email 'BerezhkovDA@mpei.ru'

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$

5.Создание коммитов
Создал проект в VS в папке lab02/alice/project  и скомпилировал его

Занесение файлов под контроль версий:

Запросил статус
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main// находимся на ветке main

No commits yet// нет коммитов

Untracked files:// неотслеживаемые файлы и папки
  (use "git add <file>..." to include in what will be committed)
        .vs/
        project.cpp
        project.sln
        project.vcxproj
        project.vcxproj.filters
        project.vcxproj.user
        x64/

nothing added to commit but untracked files present (use "git add" to track)// ничего не добавлено для коммита, но есть неотслеживаемые файлы

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
добавил под контроль файл project.cpp

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.cpp
посмотрел новый статус
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main// находимся на ветке main


No commits yet// нет коммитов


Changes to be committed://  добавили новый файл для коммита
  (use "git rm --cached <file>..." to unstage)
        new file:   project.cpp

Untracked files:// неотслеживаемые файлы и папки

  (use "git add <file>..." to include in what will be committed)
        .vs/
        project.sln
        project.vcxproj
        project.vcxproj.filters
        project.vcxproj.user
        x64/


berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
выполнил первый коммит:

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: заготовка программы'
[main (root-commit) 0fe3625] code: заготовка программы
 1 file changed, 20 insertions(+)
 create mode 100644 project.cpp

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$

Составление сообщений к коммитам:
добавил файл проекта в отслеживаение и сделали коммит
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.sln

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'build: добавлен файл проекта'
[main 6748f21] build: добавлен файл проекта
 1 file changed, 33 insertions(+)
 create mode 100644 project.sln

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
Создание коммитов с изменениями
изменили отслеживаемый файл(функцию main) и посмотрели статус
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Changes not staged for commit:// есть изменения не подготовленные для коммита
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   project.cpp

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .vs/
        project.vcxproj
        project.vcxproj.filters
        project.vcxproj.user
        x64/

no changes added to commit (use "git add" and/or "git commit -a")

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
сделали коммит первым способом:

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.cpp

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: сделали ввод двух чисел'
[main c36b421] code: сделали ввод двух чисел
 1 file changed, 5 insertions(+), 2 deletions(-)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
добавили в программу вывод суммы и закоммитили его вторым способом:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add -u

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: добавили вывод суммы'
[main 31927cc] code: добавили вывод суммы
 1 file changed, 1 insertion(+), 1 deletion(-)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
добавили вывод разности и закоммитили его третьим способом:

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m 'code: добавили вывод разности'
[main 09b9c90] code: добавили вывод разности
 1 file changed, 2 insertions(+), 1 deletion(-)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
6.Игнорирование файлов
создали в проекте программы файл .gitignore и занесли в него папки x64, .vs и файлы настроект проекта и выполнили команду git status:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore
nothing added to commit but untracked files present (use "git add" to track)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add .gitignore

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$  git commit -m 'git: добавили список игнорирования'
[main dbbd8d2] git: добавили список игнорирования
 1 file changed, 5 insertions(+)
 create mode 100644 .gitignore

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
еще раз посмотрел git status:

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
nothing to commit, working tree clean

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$

7.Просмотр истории
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --stat
commit dbbd8d2914409ca68327ae1ba07a6548f11440a9 (HEAD -> main)// хеш коммита, это коммит является головным ветки main
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>// реквизиты автора коммита
Date:   Sun Apr 7 18:49:36 2024 +0300// дата и время создания коммита

    git: добавили список игнорирования // комментарий

 .gitignore | 5 +++++// изменения в файле gitignore(добавлено 5 строк)
 1 file changed, 5 insertions(+)// общая статистика изменения

commit 09b9c90e70c99aa91d22f8b9d7d309c4b058144a
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>
Date:   Sun Apr 7 17:53:32 2024 +0300

    code: добавили вывод разности

 project.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 31927cc2ad5bfd3b72fb10654230da245625103d
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>
Date:   Sun Apr 7 17:51:10 2024 +0300

    code: добавили вывод суммы

 project.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c36b42126d0c3458526d58eb45313e56b63058a3
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>
Date:   Sun Apr 7 17:47:42 2024 +0300

    code: сделали ввод двух чисел

 project.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 6748f21f8922b3255e0a84ed886fb4f2ffed78d1
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>
Date:   Sun Apr 7 17:37:20 2024 +0300

    build: добавлен файл проекта

 project.sln | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

commit 0fe36259206878e9570d5cde8e41dc309ec93bd6
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>
Date:   Sun Apr 7 17:33:08 2024 +0300

    code: заготовка программы

 project.cpp | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate
dbbd8d2 (HEAD -> main) git: добавили список игнорирования
09b9c90 code: добавили вывод разности
31927cc code: добавили вывод суммы
c36b421 code: сделали ввод двух чисел
6748f21 build: добавлен файл проекта
0fe3625 code: заготовка программы

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate
dbbd8d2 (HEAD -> main) git: добавили список игнорирования
09b9c90 code: добавили вывод разности
31927cc code: добавили вывод суммы
c36b421 code: сделали ввод двух чисел
6748f21 build: добавлен файл проекта
0fe3625 code: заготовка программы

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* dbbd8d2 (HEAD -> main) git: добавили список игнорирования
* 09b9c90 code: добавили вывод разности
* 31927cc code: добавили вывод суммы
* c36b421 code: сделали ввод двух чисел
* 6748f21 build: добавлен файл проекта
* 0fe3625 code: заготовка программы
(ветвлений пока нет)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
 выполнил различные команды поиска по истории:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --grep "build:"
commit 6748f21f8922b3255e0a84ed886fb4f2ffed78d1
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>
Date:   Sun Apr 7 17:37:20 2024 +0300

    build: добавлен файл проекта

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log -- project.cpp
commit 09b9c90e70c99aa91d22f8b9d7d309c4b058144a
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>
Date:   Sun Apr 7 17:53:32 2024 +0300

    code: добавили вывод разности

commit 31927cc2ad5bfd3b72fb10654230da245625103d
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>
Date:   Sun Apr 7 17:51:10 2024 +0300

    code: добавили вывод суммы

commit c36b42126d0c3458526d58eb45313e56b63058a3
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>
Date:   Sun Apr 7 17:47:42 2024 +0300

    code: сделали ввод двух чисел

commit 0fe36259206878e9570d5cde8e41dc309ec93bd6
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>
Date:   Sun Apr 7 17:33:08 2024 +0300

    code: заготовка программы

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
Просмотр коммитов:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show HEAD~1
commit 09b9c90e70c99aa91d22f8b9d7d309c4b058144a
Author: Alice (BerezhkovDA) <BerezhkovDA@mpei.ru>
Date:   Sun Apr 7 17:53:32 2024 +0300

    code: добавили вывод разности

diff --git a/project.cpp b/project.cpp
index d6805ab..40ed442 100644
--- a/project.cpp
+++ b/project.cpp
@@ -8,7 +8,8 @@ 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';
 }

 // Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
Просмотр изменений

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff
diff --git a/project.cpp b/project.cpp //различие двух версий файлов
index 40ed442..c9e1d17 100644
--- a/project.cpp
+++ b/project.cpp
@@ -9,7 +9,8 @@ int main()//изменения в функции 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';//добавили строку

 }

 // Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0fada22
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+/.vs
+/x64
+/project.vcxproj.filters
+/project.vcxproj.user
+/project.vcxproj
\ No newline at end of file
diff --git a/project.cpp b/project.cpp
index d6805ab..c9e1d17 100644
--- a/project.cpp
+++ b/project.cpp
@@ -8,7 +8,9 @@ int main()
     cout << "Enter A and B: ";
     int a, b;
     cin >> a >> b;
-    cout << "A + B = " << a + b << '\n';
+    cout << "A + B = " << a + b << '\n'
+         << "A - B = " << a - b << '\n'
+         << "A * B = " << a * b << '\n';
 }

 // Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~2 HEAD
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0fada22
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+/.vs
+/x64
+/project.vcxproj.filters
+/project.vcxproj.user
+/project.vcxproj
\ No newline at end of file
diff --git a/project.cpp b/project.cpp
index d6805ab..40ed442 100644
--- a/project.cpp
+++ b/project.cpp
@@ -8,7 +8,8 @@ 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';
 }

 // Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
Просмотрел изменения между самым первым коммитом и коммитом, добавляющим вывод разности:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~5 HEAD~1
diff --git a/project.cpp b/project.cpp
index 7985631..40ed442 100644
--- a/project.cpp
+++ b/project.cpp
@@ -2,10 +2,14 @@
 //

 #include <iostream>
-
+using namespace std;
 int main()
 {
-    std::cout << "Hello World!\n";
+    cout << "Enter A and B: ";
+    int a, b;
+    cin >> a >> b;
+    cout << "A + B = " << a + b << '\n'
+         << "A - B = " << a - b << '\n';
 }

 // Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
diff --git a/project.sln b/project.sln
new file mode 100644
index 0000000..14ad922
--- /dev/null
+++ b/project.sln
@@ -0,0 +1,33 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.7.34031.279
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "project", "project.vcxproj", "{55A887FF-DE08-4BE9-96E2-6648B121A96F}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Элементы решения", "Элементы решения", "{F7901F52-D40F-42F8-A514-C76DEB46FCDB}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|x64 = Debug|x64
+               Debug|x86 = Debug|x86
+               Release|x64 = Release|x64
+               Release|x86 = Release|x86
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {55A887FF-DE08-4BE9-96E2-6648B121A96F}.Debug|x64.ActiveCfg = Debug|x64
+               {55A887FF-DE08-4BE9-96E2-6648B121A96F}.Debug|x64.Build.0 = Debug|x64
+               {55A887FF-DE08-4BE9-96E2-6648B121A96F}.Debug|x86.ActiveCfg = Debug|Win32
+               {55A887FF-DE08-4BE9-96E2-6648B121A96F}.Debug|x86.Build.0 = Debug|Win32
+               {55A887FF-DE08-4BE9-96E2-6648B121A96F}.Release|x64.ActiveCfg = Release|x64
+               {55A887FF-DE08-4BE9-96E2-6648B121A96F}.Release|x64.Build.0 = Release|x64
+               {55A887FF-DE08-4BE9-96E2-6648B121A96F}.Release|x86.ActiveCfg = Release|Win32
+               {55A887FF-DE08-4BE9-96E2-6648B121A96F}.Release|x86.Build.0 = Release|Win32
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+               SolutionGuid = {A3B0D436-23F2-47EE-89DF-63CC21812B40}
+       EndGlobalSection
+EndGlobal

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
8.Откат изменений
Закоммитил изменения в рабочей копии (вывод произведения)
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m 'code: добавили вывод произведения'
[main 9eeb011] code: добавили вывод произведения
 1 file changed, 2 insertions(+), 1 deletion(-)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
откатили коммит:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at dbbd8d2 git: добавили список игнорирования

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
 в редакторе появилась предыдущая версия файла
внесли изменения в файл, выполнил команду:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout HEAD -- project.cpp

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
 В результате файл принял исходное состояние

9.Обмен кодом через удаленное хранилище
далее работа идет через http , настройку ssh пропускаем
Отправка проекта на сервер
зарегестрировался на сервере создал репозитарий

подключился к серверу
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git remote add origin http://uit.mpei.ru/git/BerezhkovDA/cs-lab02.git

скинул на сервер текущий проект
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/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% (17/17), done.
Writing objects: 100% (18/18), 3.12 KiB | 1.56 MiB/s, done.
Total 18 (delta 3), 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/BerezhkovDA/cs-lab02.git
 * [new branch]      main -> main
branch 'main' set up to track 'origin/main'.

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
Получение проекта с сервера
	
запустил git для папки боба и скопировал с сервера проект
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ git clone http://uit.mpei.ru/git/BerezhkovDA/cs-lab02.git project
Cloning into 'project'...
remote: Enumerating objects: 18, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 18 (delta 3), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (18/18), done.
Resolving deltas: 100% (3/3), done.

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$
перешел в каталог project:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd project
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$
настроил конфиг боба
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.name 'Bob (BerezhkovDA)'

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.email 'BerezhkovDA@mpei.ru'

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$

10.Совместная работа над проектом без конфликтов правок
в проекте программы у боба сделал вывод произведения, выполнил коммит и отправил на сервер:

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -a -m "code: добавил вывод произведения"
[main f980699] code: добавил вывод произведения
 1 file changed, 2 insertions(+), 1 deletion(-)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/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), 411 bytes | 411.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/BerezhkovDA/cs-lab02.git
   dbbd8d2..f980699  main -> main
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$
выполнил загрузку изменений на машине алисы
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/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), 391 bytes | 65.00 KiB/s, done.
From http://uit.mpei.ru/git/BerezhkovDA/cs-lab02
   dbbd8d2..f980699  main       -> origin/main

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
посмотрел историю всех изменений:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* f980699 (origin/main) code: добавил вывод произведения
* dbbd8d2 (HEAD -> main) git: добавили список игнорирования
* 09b9c90 code: добавили вывод разности
* 31927cc code: добавили вывод суммы
* c36b421 code: сделали ввод двух чисел
* 6748f21 build: добавлен файл проекта
* 0fe3625 code: заготовка программы

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
Продвинул ветку main к скачанной версии:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git pull --ff-only
Updating dbbd8d2..f980699
Fast-forward
 project.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
добавил в программе у алисы вывод деления, закоммитил, отправил на сервер:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m 'code: добавили вывод деления'
[main d0bd254] code: добавили вывод деления
 1 file changed, 2 insertions(+), 1 deletion(-)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/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), 406 bytes | 406.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/BerezhkovDA/cs-lab02.git
   f980699..d0bd254  main -> main
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
загрузил обновленную версию программы с сервера у боба:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ 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), 386 bytes | 13.00 KiB/s, done.
From http://uit.mpei.ru/git/BerezhkovDA/cs-lab02
   f980699..d0bd254  main       -> origin/main
Updating f980699..d0bd254
Fast-forward
 project.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$
11.Разрешение конфликтов правок при совместной работе
«На машине Алисы» дополнил программу печатью максимума, сделал коммит и отправил его на сервер:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m 'code: добавили вывод максимального'
[main 1d1ab2f] code: добавили вывод максимального
 1 file changed, 2 insertions(+)
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/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), 453 bytes | 453.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/BerezhkovDA/cs-lab02.git
   d0bd254..1d1ab2f  main -> main
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
На машине Боба» дополнил программу печатью минимума, сделал коммит и попытался отправить его на сервер
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -a -m "code: добавил вывод минимума"
[main 922f64c] code: добавил вывод минимума
 1 file changed, 1 insertion(+)
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
To http://uit.mpei.ru/git/BerezhkovDA/cs-lab02.git
 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'http://uit.mpei.ru/git/BerezhkovDA/cs-lab02.git'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/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), 433 bytes | 36.00 KiB/s, done.
From http://uit.mpei.ru/git/BerezhkovDA/cs-lab02
   d0bd254..1d1ab2f  main       -> origin/main

«От лица Боба» загрузил коммиты из удаленного хранилища и отобразил историю всех веток
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 922f64c (HEAD -> main) code: добавил вывод минимума
| * 1d1ab2f (origin/main, origin/HEAD) code: добавили вывод максимального
|/
* d0bd254 code: добавили вывод деления
* f980699 code: добавил вывод произведения
* dbbd8d2 git: добавили список игнорирования
* 09b9c90 code: добавили вывод разности
* 31927cc code: добавили вывод суммы
* c36b421 code: сделали ввод двух чисел
* 6748f21 build: добавлен файл проекта
* 0fe3625 code: заготовка программы

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$
 попытался переместить свой коммит поверх коммита Алисы, то есть поверх origin/main:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git rebase origin/main
Auto-merging project.cpp
CONFLICT (content): Merge conflict in project.cpp
error: could not apply 922f64c... 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 922f64c... code: добавил вывод минимума
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|REBASE 1/1)
$
однако команда завершилась с ошибкой.
Удалил метки конфликта: <<<< ..., ... >>>> и =====.
Отредактировал код так, чтобы он включал и правки Алисы, и правки Боба.
Убедился, что программа компилируется и работает.

добавил файл в индекс и продолжил прерванную операцию rebase:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
[detached HEAD 3e63755] code: добавил вывод минимума
 1 file changed, 1 insertion(+), 1 deletion(-)
Successfully rebased and updated refs/heads/main.
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$
посмотрел вид истории хранилища и отправил изменения на сервер
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 3e63755 (HEAD -> main) code: добавил вывод минимума
* 1d1ab2f (origin/main, origin/HEAD) code: добавили вывод максимального
* d0bd254 code: добавили вывод деления
* f980699 code: добавил вывод произведения
* dbbd8d2 git: добавили список игнорирования
* 09b9c90 code: добавили вывод разности
* 31927cc code: добавили вывод суммы
* c36b421 code: сделали ввод двух чисел
* 6748f21 build: добавлен файл проекта
* 0fe3625 code: заготовка программы
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/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/BerezhkovDA/cs-lab02.git
   1d1ab2f..3e63755  main -> main
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$
12.Использование веток
на машине алисы создал ветку double и перключился на нее:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git branch double

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$
поменял тип данных в программе у алисы и сделал коммит и переключился на ветку main:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git commit -a -m 'code: изменил тип данных на double'
[double c225d48] code: изменил тип данных на double
 1 file changed, 1 insertion(+), 1 deletion(-)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
синхронизировал ветку main с сервера и посмотрел иторию всех веток:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ 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), 419 bytes | 32.00 KiB/s, done.
From http://uit.mpei.ru/git/BerezhkovDA/cs-lab02
   1d1ab2f..3e63755  main       -> origin/main
Updating 1d1ab2f..3e63755
Fast-forward
 project.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* c225d48 (double) code: изменил тип данных на double
| * 3e63755 (HEAD -> main, origin/main) code: добавил вывод минимума
|/
* 1d1ab2f code: добавили вывод максимального
* d0bd254 code: добавили вывод деления
* f980699 code: добавил вывод произведения
* dbbd8d2 git: добавили список игнорирования
* 09b9c90 code: добавили вывод разности
* 31927cc code: добавили вывод суммы
* c36b421 code: сделали ввод двух чисел
* 6748f21 build: добавлен файл проекта
* 0fe3625 code: заготовка программы

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
слил ветку double в main:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git merge double
Auto-merging project.cpp
Merge made by the 'ort' strategy.
 project.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
*   04ca311 (HEAD -> main) Merge branch 'double'
|\
| * c225d48 (double) code: изменил тип данных на double
* | 3e63755 (origin/main) code: добавил вывод минимума
|/
* 1d1ab2f code: добавили вывод максимального
* d0bd254 code: добавили вывод деления
* f980699 code: добавил вывод произведения
* dbbd8d2 git: добавили список игнорирования
* 09b9c90 code: добавили вывод разности
* 31927cc code: добавили вывод суммы
* c36b421 code: сделали ввод двух чисел
* 6748f21 build: добавлен файл проекта
* 0fe3625 code: заготовка программы

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
отправил изменения на сервер:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ 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), 759 bytes | 759.00 KiB/s, done.
Total 6 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/BerezhkovDA/cs-lab02.git
   3e63755..04ca311  main -> main

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
получил у боба последнне изменение:
berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git pull
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), 739 bytes | 38.00 KiB/s, done.
From http://uit.mpei.ru/git/BerezhkovDA/cs-lab02
   3e63755..04ca311  main       -> origin/main
Updating 3e63755..04ca311
Fast-forward
 project.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

berez@Dimus05 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$
Описание
No description provided
Readme 46 KiB
Languages
C++ 100%