2023-03-27 06:58:04 +00:00
2023-03-26 02:43:17 +03:00
2023-03-26 03:43:07 +03:00
2023-03-26 02:38:13 +03:00
2023-03-27 06:58:04 +00:00

Отчет по лабораторной работе № 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: заготовка программы












Описание
No description provided
Readme 40 KiB
Languages
C++ 100%