Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Alice (KapitonovMA) c810c03258
text: отчёт
12 месяцев назад
.gitignore git: добавление игнорирования файлов 12 месяцев назад
README.txt text: отчёт 12 месяцев назад
main.cpp code: замена intt на double 12 месяцев назад
project.cbp build: добавление файла проекта 12 месяцев назад

README.txt

Отчет по лабораторной работе № 2 "Система контроля версий Git"


Выполнил: Капитонов М.А.
Группа: А-02-23

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

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

Wks@Miker MINGW64 ~/Desktop/lab02
$


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

ivan@HOME-PC MINGW32 /c/Users/ivan/Desktop/lab02
$ ls


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

Wks@Miker MINGW64 ~/Desktop/lab02
$ mkdir alice

Wks@Miker MINGW64 ~/Desktop/lab02
$ mkdir bob

Wks@Miker MINGW64 ~/Desktop/lab02
$ cd alice

Wks@Miker MINGW64 ~/Desktop/lab02/alice
$ mkdir project

Wks@Miker MINGW64 ~/Desktop/lab02/alice
$ ls
project/

Wks@Miker MINGW64 ~/Desktop/lab02/alice
$ cd project

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project
$ cd ..

Wks@Miker MINGW64 ~/Desktop/lab02/alice
$ cd project


4. Инициализировал репозитарий:

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/Wks/Desktop/lab02/alice/project/.git/

Подсказка не появилась, поэтому поменяю имя ветки после создания первого коммита.

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (master)
$ git config user.name 'Alice (KapitonovMA)'

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (master)
$ git config user.email 'KapitonovMikA@mpei.ru'


5. Создал коммиты

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (master)
$ git status
On branch master

Мы находимся в ветке master

No commits yet

Коммитов пока нет

Untracked files:
(use "git add <file>..." to include in what will be committed)
main.cpp
project.cbp

Показаны неотслеживаемые файлы

nothing added to commit but untracked files present (use "git add" to track)

Ничего не добавлено в коммит, но неотслеживаемые файлы представлены

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (master)
$ git add main.cpp

Занесём под Git файл main.cpp

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (master)
$ git branch -m main

Поменяем имя ветки master на main

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main

No commits yet

Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: main.cpp

Untracked files:
(use "git add <file>..." to include in what will be committed)
project.cbp

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: заготовка программы'
[main (root-commit) e9a489c] code: заготовка программы
1 file changed, 9 insertions(+)
create mode 100644 main.cpp

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add project.cbp
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'build: добавление файла проекта'
[main 8dab618] build: добавление файла проекта
1 file changed, 40 insertions(+)
create mode 100644 project.cbp

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: main.cpp

Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
obj/

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


6. Добавил игнорирование файлов

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: main.cpp

Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
obj/

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

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: main.cpp

Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore

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

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add .gitignore

Wks@Miker MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'git: добавление игнорирования файлов'
[main 327c540] git: добавление игнорирования файлов
1 file changed, 2 insertions(+)
create mode 100644 .gitignore


7. Начнем отслеживать файл main.cpp и еще раз просмотрим состояние рабочей копии



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)

$ git add main.cpp



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)

$ git status

On branch master



No commits yet



Changes to be committed:

(use "git rm --cached <file>..." to unstage)

new file: main.cpp



Untracked files:

(use "git add <file>..." to include in what will be committed)

bin/

obj/

project.cbp



Видим, что Git начал отслеживать изменения в файле main.cpp



8. Выполним первый коммит с этим файлом



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)

$ git commit -m 'code: заготовка программы'

[master (root-commit) 1475f95] code: заготовка программы

1 file changed, 9 insertions(+)

create mode 100644 main.cpp




9. Занесли файл project.cbp в индекс и выполнили коммит с ним



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git add project.cbp

warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git commit -m 'build: добавлен файл проетка'

[main 39e0c8c] build: добавлен файл проетка

1 file changed, 40 insertions(+)

create mode 100644 project.cbp



10. Заменили тело функции на ввод двух чисел и просмотрели еще раз состояние репозитария



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git status

On branch main

Changes to be committed:

(use "git restore --staged <file>..." to unstage)

modified: main.cpp



Untracked files:

(use "git add <file>..." to include in what will be committed)

bin/

obj/



Теперь Git отследил изменения и указал файл, в котором эти изменения произошли.

И в отличии от случая, когда создавался новый файл, Git пишет не "new file: ", а "modified: ".

Кроме этого предлагает другую команду, чтобы отменить загрузку.



11. Создал 3 коммита с изменениями разными способами.

а) Закоммитила изменение в теле функции



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git commit -m 'code: длбавлен ввод двух чисел'

[main d48cf2c] code: длбавлен ввод двух чисел

1 file changed, 3 insertions(+), 2 deletions(-)



б) Добавил вывод суммы этих чисел



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git add -u



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git commit -m 'code: добавлена сумма'

[main 734f5fb] code: добавлена сумма

1 file changed, 1 insertion(+)



в) Добавил вывод разности



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git commit -a -m 'code: добавлена разность'

[main 25143e4] code: добавлена разность

1 file changed, 1 insertion(+)



12. Создал в корне репозитария файл .gitignore, который позволяет Git игнорировать некоторые каталоги, и сделал с ним коммит.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git add .gitignore



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git commit -m 'git: добавлено игнорирование файлов'

[main 7d246af] git: добавлено игнорирование файлов

1 file changed, 3 insertions(+)

create mode 100644 .gitignore



13. Просмотрим историю



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git log --stat

commit 7d246af3e9e749439f33d22d570d3b05b1b755ce (HEAD -> main)

Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>

Date: Sun Apr 7 19:19:47 2024 +0300



git: добавлено игнорирование файлов



.gitignore | 3 +++

1 file changed, 3 insertions(+)



commit 25143e4c234f2bd80487977386eb15afa27db3c9

Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>

Date: Sun Apr 7 18:56:37 2024 +0300



code: добавлена разность



main.cpp | 1 +

1 file changed, 1 insertion(+)



commit 734f5fb608db6e5f8e0610d59582a02a697d5584

Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>

Date: Sun Apr 7 18:54:26 2024 +0300



code: добавлена сумма



Рассмотрим последний коммит. Мы можем видеть информацию о том, кто сделал последний коммит и когда.

Команда также показывает нам сколько файлов было изменено, название файла с изменениями, тему коммита и наш комментарий к нему.

А также количество изменений.



Просмотрим историю с помощью других комманд:



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git log --grep 'build'

commit 39e0c8ce15c50bb4aed2922172323a934853f589

Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>

Date: Sun Apr 7 18:39:45 2024 +0300



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



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git log -- project.cbp

commit 39e0c8ce15c50bb4aed2922172323a934853f589

Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>

Date: Sun Apr 7 18:39:45 2024 +0300



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



14. Отдельно просмотрим предпоследний коммит.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git show HEAD~1

commit 25143e4c234f2bd80487977386eb15afa27db3c9

Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>

Date: Sun Apr 7 18:56:37 2024 +0300



code: добавлена разность



diff --git a/main.cpp b/main.cpp

index 778abf0..a392737 100644

--- a/main.cpp

+++ b/main.cpp

@@ -8,4 +8,5 @@ int main()

int a, b;

cin >> a >> b;

cout << " A + B = " << a + b << '\n';

+ cout << " A - B = " << a - b << '\n';

}



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git show 25143e4

commit 25143e4c234f2bd80487977386eb15afa27db3c9

Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>

Date: Sun Apr 7 18:56:37 2024 +0300



code: добавлена разность



diff --git a/main.cpp b/main.cpp

index 778abf0..a392737 100644

--- a/main.cpp

+++ b/main.cpp

@@ -8,4 +8,5 @@ int main()

int a, b;

cin >> a >> b;

cout << " A + B = " << a + b << '\n';

+ cout << " A - B = " << a - b << '\n';

}



15. Внесем изменение в программу без выполнения коммита и посмотрим эти изменения



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git diff

diff --git a/main.cpp b/main.cpp

index a392737..5e034ec 100644

--- a/main.cpp

+++ b/main.cpp

@@ -4,9 +4,10 @@ using namespace std;



int main()

{

- cout << "Enter A and B: ";

+ cout << "Enter A and B: " << endl;

int a, b;

cin >> a >> b;

cout << " A + B = " << a + b << '\n';

cout << " A - B = " << a - b << '\n';

+ cout << " A * B = " << a * b << '\n';

}



Сначала Git указывает, что будет сравнивать, затем отображает сколько изменений он обнаружил и в конце указывает сами эти изменения.



Просмотрим изменения между двумя данными коммитами



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git diff HEAD~5 HEAD~1

diff --git a/main.cpp b/main.cpp

index b4392ec..a392737 100644

--- a/main.cpp

+++ b/main.cpp

@@ -4,6 +4,9 @@ using namespace std;



int main()

{

- cout << "Hello world!" << endl;

- return 0;

+ cout << "Enter A and B: ";

+ int a, b;

+ cin >> a >> b;

+ cout << " A + B = " << a + b << '\n';

+ cout << " A - B = " << a - b << '\n';

}

diff --git a/project.cbp b/project.cbp

new file mode 100644

index 0000000..99bb702

--- /dev/null

+++ b/project.cbp

@@ -0,0 +1,40 @@

+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>



16. Произвел откат изменений 2мя способами

1) Закоммитила вывод произведения, а затем отменим этот коммит.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git add main.cpp



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git commit -m 'code: добавлено произведение'

[main fa6c80c] code: добавлено произведение

1 file changed, 2 insertions(+), 1 deletion(-)



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git reset --hard HEAD~1

HEAD is now at 7d246af git: добавлено игнорирование файлов



2) Добавил комментарий в программу, а затем снова вернулся к последнему коммиту.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git checkout HEAD -- main.cpp



17. Зарегестрировался на Git УИТ. Затем создал пару ключей и запустил агент, чтобы не вводить ключ каждый раз заново.

Затем добавил ключ в список открытых ключей моей учетной записи.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ ssh-keygen

Generating public/private ed25519 key pair.

Enter file in which to save the key (/c/Users/LENOVO/.ssh/id_ed25519):

/c/Users/LENOVO/.ssh/id_ed25519 already exists.

Overwrite (y/n)? y

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /c/Users/LENOVO/.ssh/id_ed25519

Your public key has been saved in /c/Users/LENOVO/.ssh/id_ed25519.pub

The key fingerprint is:

SHA256:PqVxNsabfSwV2JkR7DUfF+/LCLQYjNTaqU65DSeNdS4 LENOVO@DESKTOP-MLIFKLH

The key's randomart image is:

+--[ED25519 256]--+

| .. .oo.|

| . o. o.*+|

| .oo....=.*|

| . =+.. .o.|

| S.Xo . .|

| O E *.oo .|

| o X + o.oo |

| o o o |

| |

+----[SHA256]-----+



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ eval $(ssh-agent -s)

Agent pid 593



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ ssh-add

Enter passphrase for /c/Users/LENOVO/.ssh/id_ed25519:

Identity added: /c/Users/LENOVO/.ssh/id_ed25519 (LENOVO@DESKTOP-MLIFKLH)



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ cat ~/.ssh/id_ed25519.pub

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILNxZ2NZmRO53H8KUbNvBsOqkeGGywsMSRv8S7lFfP7Y LENOVO@DESKTOP-MLIFKLH



18. Создал новый репозитарий и настроил связь с удаленным хранилищем.

И так как я работал не в лаборатории, то для взаимодействия с сервером произвела по протоколу HTTP



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git remote add origin http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git push -u origin main

Enumerating objects: 18, done.

Counting objects: 100% (18/18), done.

Delta compression using up to 8 threads

Compressing objects: 100% (16/16), done.

Writing objects: 100% (18/18), 2.36 KiB | 1.18 MiB/s, done.

Total 18 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)

remote: . Processing 1 references

remote: Processed 1 references in total

To http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git

* [new branch] main -> main

branch 'main' set up to track 'origin/main'.



19. Открыл терминал Git Bash в каталоге Боба и клонировал туда проект.

А затем перешёл в каталог project.





LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob

$ git clone http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git project

Cloning into 'project'...

remote: Enumerating objects: 18, done.

remote: Counting objects: 100% (18/18), done.

remote: Compressing objects: 100% (16/16), done.

remote: Total 18 (delta 2), reused 0 (delta 0), pack-reused 0

Receiving objects: 100% (18/18), done.

Resolving deltas: 100% (2/2), done.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob

$ cd project



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$



20. Как и в случае с Алисой, настраиваю репозитарий Боба



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git config user.name 'Bob (KapitonovMikA)'



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git config user.email 'KapitonovMikA@mpei.ru'



21. Добавил печать произведения чисел в программу и сделал коммит от лица Боба.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git add main.cpp



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git commit -m 'code: добавили произведение'

[main c19ba2d] code: добавили произведение

1 file changed, 2 insertions(+), 1 deletion(-)



Здесь я убедился, что коммит выполнен от лица Боба



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git show HEAD

commit c19ba2d2f3720d87bbaae1edc0e0db0f49306766 (HEAD -> main)

Author: Bob (KapitonovMikA) <KapitonovMikA@mpei.ru>

Date: Sun Apr 7 19:59:54 2024 +0300



code: добавили произведение



diff --git a/main.cpp b/main.cpp

index a392737..5e034ec 100644

--- a/main.cpp

+++ b/main.cpp

@@ -4,9 +4,10 @@ using namespace std;



int main()

{

- cout << "Enter A and B: ";

+ cout << "Enter A and B: " << endl;

int a, b;

cin >> a >> b;

cout << " A + B = " << a + b << '\n';

cout << " A - B = " << a - b << '\n';

+ cout << " A * B = " << a * b << '\n';

}



22. Отправил коммит Боба на сервер, а затем выполнил загрузку изменеий на машине у Алисы.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git push

Enumerating objects: 5, done.

Counting objects: 100% (5/5), done.

Delta compression using up to 8 threads

Compressing objects: 100% (3/3), done.

Writing objects: 100% (3/3), 435 bytes | 435.00 KiB/s, done.

Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)

remote: . Processing 1 references

remote: Processed 1 references in total

To http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git

7d246af..c19ba2d main -> main



Загрузка изменений у Алисы



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git fetch

remote: Enumerating objects: 5, done.

remote: Counting objects: 100% (5/5), done.

remote: Compressing objects: 100% (3/3), done.

remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0

Unpacking objects: 100% (3/3), 415 bytes | 103.00 KiB/s, done.

From http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2

7d246af..c19ba2d main -> origin/main



23. Просмотрим теперь историю всех веток и увидим, что ветка main Алисы отстает от ветки origin/main на один коммит.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git log --oneline --decorate --all --graph

* c19ba2d (origin/main) code: добавили произведение

* 7d246af (HEAD -> main) git: добавлено игнорирование файлов

* 25143e4 code: добавлена разность

* 734f5fb code: добавлена сумма

* d48cf2c code: длбавлен ввод двух чисел

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

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



Продвигаем эту ветку к скачанной версии.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git pull --ff-only

Updating 7d246af..c19ba2d

Fast-forward

main.cpp | 3 ++-

1 file changed, 2 insertions(+), 1 deletion(-)



24. Проделаем те же шаги о лица Алисы. Добавим в программу печать деления и сделаем коммит.

Затем получим новую версию у боба.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git add main.cpp



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git commit -m 'code: добавили деление'

[main 18f885b] code: добавили деление

1 file changed, 5 insertions(+), 1 deletion(-)



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git push

Enumerating objects: 5, done.

Counting objects: 100% (5/5), done.

Delta compression using up to 8 threads

Compressing objects: 100% (3/3), done.

Writing objects: 100% (3/3), 437 bytes | 437.00 KiB/s, done.

Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)

remote: . Processing 1 references

remote: Processed 1 references in total

To http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2.git

c19ba2d..18f885b main -> main



У Боба:



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git fetch

remote: Enumerating objects: 5, done.

remote: Counting objects: 100% (5/5), done.

remote: Compressing objects: 100% (3/3), done.

remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0

Unpacking objects: 100% (3/3), 417 bytes | 34.00 KiB/s, done.

From http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2

c19ba2d..18f885b main -> origin/main



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git pull --ff-only

Updating c19ba2d..18f885b

Fast-forward

main.cpp | 6 +++++-

1 file changed, 5 insertions(+), 1 deletion(-)



25. На машине у Алисы добавляем в программу печать максимума, делаем коммит и отправляем на сервер.

На машине у Боба добавлем печать минимума, делаем коммит и тоже пытаемся отправить на сервер.





LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git add main.cpp



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git commit -m 'code: добавили вывод максимума'

[main 0a9f112] code: добавили вывод максимума

1 file changed, 5 insertions(+)



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git push

Enumerating objects: 5, done.

Counting objects: 100% (5/5), done.

Delta compression using up to 8 threads

Compressing objects: 100% (3/3), done.

Writing objects: 100% (3/3), 452 bytes | 452.00 KiB/s, done.

Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)

remote: . Processing 1 references

remote: Processed 1 references in total

To http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git

18f885b..0a9f112 main -> main



На машине у Боба:



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git add main.cpp



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git commit -m 'code: добавили вывод минимума'

[main 3918cc6] code: добавили вывод минимума

1 file changed, 5 insertions(+)



При попытке отправить на сервер, выдается ошибка



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git push

To http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git

! [rejected] main -> main (fetch first)

error: failed to push some refs to 'http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2.git'

hint: Updates were rejected because the remote contains work that you do not

hint: have locally. This is usually caused by another repository pushing to

hint: the same ref. If you want to integrate the remote changes, use

hint: 'git pull' before pushing again.

hint: See the 'Note about fast-forwards' in 'git push --help' for details.





26. Разрешение конфликта

От лица Боба загружаю коммиты из удалённого хранилища



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git fetch

remote: Enumerating objects: 5, done.

remote: Counting objects: 100% (5/5), done.

remote: Compressing objects: 100% (3/3), done.

remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0

Unpacking objects: 100% (3/3), 432 bytes | 54.00 KiB/s, done.

From http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2

18f885b..0a9f112 main -> origin/main



Просмотрим теперь историю всех веток:



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git log --oneline --decorate --all --graph

* 3918cc6 (HEAD -> main) code: добавили вывод минимума

| * 0a9f112 (origin/main, origin/HEAD) code: добавили вывод максимума

|/

* 18f885b code: добавили деление

* c19ba2d code: добавили произведение

* 7d246af git: добавлено игнорирование файлов

* 25143e4 code: добавлена разность

* 734f5fb code: добавлена сумма

* d48cf2c code: длбавлен ввод двух чисел

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

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



Можно видеть, как ветка main Боба разошлась с главной веткой на сервере.

На машине Боба вношу изменения в файл, чтобы разрешить конфликт.

Выполняю коммит от лица Боба и перемещаю коммит его поверх коммита Алисы.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git rebase origin/main

Auto-merging main.cpp

CONFLICT (content): Merge conflict in main.cpp

error: could not apply 3918cc6... code: добавили вывод минимума

hint: Resolve all conflicts manually, mark them as resolved with

hint: "git add/rm <conflicted_files>", then run "git rebase --continue".

hint: You can instead skip this commit: run "git rebase --skip".

hint: To abort and get back to the state before "git rebase", run "git rebase --abort".

Could not apply 3918cc6... code: добавили вывод минимума



Просмотрим состояние хранилища:



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git status

On branch main

Your branch is ahead of 'origin/main' by 1 commit.

(use "git push" to publish your local commits)



Untracked files:

(use "git add <file>..." to include in what will be committed)

project.depend



nothing added to commit but untracked files present (use "git add" to track)





LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git log --oneline --decorate --all --graph

* d0f1b71 (HEAD -> main) code: добавили вывод минимума

* 0a9f112 (origin/main, origin/HEAD) code: добавили вывод максимума

* 18f885b code: добавили деление

* c19ba2d code: добавили произведение

* 7d246af git: добавлено игнорирование файлов

* 25143e4 code: добавлена разность

* 734f5fb code: добавлена сумма

* d48cf2c code: длбавлен ввод двух чисел

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

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



Отправила итоговые изменения на сервер.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)

$ git push

Enumerating objects: 5, done.

Counting objects: 100% (5/5), done.

Delta compression using up to 8 threads

Compressing objects: 100% (3/3), done.

Writing objects: 100% (3/3), 439 bytes | 439.00 KiB/s, done.

Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)

remote: . Processing 1 references

remote: Processed 1 references in total

To http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2.git

0a9f112..d0f1b71 main -> main





27. Использование веток

на машине Алисы создал ветку double и переключился на неё.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git branch double



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git checkout double

Switched to branch 'double'



Затем, добавляю от лица Алисы изменения в программу: изменил тип переменных a и b с int на double.

Выполнил коммит.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (double)

$ git add main.cpp



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (double)

$ git commit -m 'code: изменили тип данных a и b'

[double b770b59] code: изменили тип данных a и b

1 file changed, 1 insertion(+), 1 deletion(-)



И снова переключился на ветку main



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (double)

$ git checkout main

Switched to branch 'main'

Your branch is up to date with 'origin/main'.



Синхронизировал эту ветку с сервером и отправил на сервер.



LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)

$ git push

Enumerating objects: 5, done.

Counting objects: 100% (5/5), done.

Delta compression using up to 8 threads

Compressing objects: 100% (3/3), done.

Writing objects: 100% (3/3), 409 bytes | 409.00 KiB/s, done.

Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)

remote: . Processing 1 references

remote: Processed 1 references in total

To http://uit.mpei.ru/git/KapitonovMikA/cs-lab02.2.git

d0f1b71..1f72fbd main -> main