Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1061 строка
40 KiB
Plaintext

Отчет по лабораторной работе № 2 "Система контроля версий Git"
Выполнил: Юсуфов Ю.Б
Группа: А-01-22
Проверил:
1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:
Yusuf@YunusLap MINGW64 ~/Desktop/lab02
$
2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто:
Yusuf@YunusLap MINGW64 ~/Desktop/lab02
$ ls
Yusuf@YunusLap MINGW64 ~/Desktop/lab02
$
3. Создал каталоги Алисы и Боба, создал каталог "project",
изучил команду "cd" в процессе:
Yusuf@YunusLap MINGW64 ~/Desktop/lab02
$ mkdir alice
Yusuf@YunusLap MINGW64 ~/Desktop/lab02
$ mkdir bob
Yusuf@YunusLap MINGW64 ~/Desktop/lab02
$ cd bob
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob
$ cd ..
Yusuf@YunusLap MINGW64 ~/Desktop/lab02
$ cd alice
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice
$ mkdir project
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice
$ ls
project/
4. Инициализировал репозитарий
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/Yusuf/Desktop/lab02/alice/project/.git/
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (master)
$
Тут же поменяем master на main
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (master)
$ git branch -m main
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$
Настроим репозитарий Алисы, чтобы коммиты были от ее имени:
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git config user.name 'Alice (YusufovYB)'
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git config user.email 'YusufovYB@mpei.ru'
5. Создал проект на CodeBlock и поместил в репозитарий
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ ls
bin/ main.cpp obj/ project.cbp project.layout
Посмотрим состояние рабочей копии
Yusuf@YunusLap 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) (Используйте команду "git add <file>..." чтобы начать отслеживать файлы)
bin/
main.cpp
obj/
project.cbp
project.layout
nothing added to commit but untracked files present (use "git add" to track) (нету ничего для "коммита" но отображаются неотслеживаемые файлы)
Занесем под Git main.cpp и снова проверим состояние рабочей копии
Yusuf@YunusLap 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)
bin/
obj/
project.cbp
project.layout
Заметим, что файл main.cpp теперь отслеживается, а значит мы теперь его можем "закоммитить"
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: заготовка программы'
[main (root-commit) 110ab47] code: заготовка программы
1 file changed, 9 insertions(+)
create mode 100644 main.cpp
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$
Теперь добавим файл project.cbp и отметим это "коммитом"
Yusuf@YunusLap 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
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'buld: добавлен файл проекта'
[main 2463abc] buld: добавлен файл проекта
1 file changed, 40 insertions(+)
create mode 100644 project.cbp
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
obj/
project.layout
nothing added to commit but untracked files present (use "git add" to track)
Файл проекта пропал из неотслеживаемых файлов.
6. Внесем изменения в код программы, добавим ввод числе a и б
Проверим состояние репозитария
Yusuf@YunusLap 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/
project.layout
no changes added to commit (use "git add" and/or "git commit -a")
Появилась строчка, которая говорит, что файл main.cpp был изменен и при этом он не отслеживается
Начнем отслеживать этот файл первым способом и "закоммитем" измененния.
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: добавлен ввод чисел а и b'
[main e6c9e23] code: добавлен ввод чисел а и b
1 file changed, 3 insertions(+), 2 deletions(-)
Снова изменим код программы и добавим вывод суммы чисел a и b
Проверим снова статус репозитария
Yusuf@YunusLap 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/
project.layout
no changes added to commit (use "git add" and/or "git commit -a")
Опять видем изменения в файле main.cpp, теперь отследим этот файл вторым способом и "закоммитем" его
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add -u
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: добавлен вывод суммы a и b'
[main aa88cf5] code: добавлен вывод суммы a и b
1 file changed, 1 insertion(+)
Добавим в код программы вывод разности переменных a и b
Проверим статус репозитария
Yusuf@YunusLap 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/
project.layout
no changes added to commit (use "git add" and/or "git commit -a")
Вновь видем изменения в файле main.cpp. В этот раз отследим этот файл третим способом и тут же "закоммитем" его
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -a -m 'code: добавлен вывод разности переменных a и b'
[main 8eb470b] code: добавлен вывод разности переменных a и b
1 file changed, 1 insertion(+)
7. Добавим bin, obj, project.layout в созданный пустой проект в CodeBlock для игнорирования их git bash'ем при вводе команды git status.
Созданный файл сохраним под названием .gitignore, добавим для отслеживания и "закоммитем" его
$ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: .gitignore
Как видим, появился файл .gitignore и пропали каталоги bin, obj и файл project.layout
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: .gitignore
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add .gitignore
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'git: игнорирование bin obj, project.layout, project.depend'
[main a60d166] git: игнорирование bin obj, project.layout, project.depend
1 file changed, 4 insertions(+)
create mode 100644 .gitignore
8. Откроем журнал журнал репозитария с помощью команды git log
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log
commit a60d1665e7a73b34587bab56f66af527f2d09ce3 (HEAD -> main)
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:33:25 2023 +0300
git: игнорирование bin obj, project.layout, project.depend
commit 8eb470b4a12735fed370131bfa0933f58172eeb3
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:14:08 2023 +0300
code: добавлен вывод разности переменных a и b
commit aa88cf543912ef9204b56f84a2f61f4fb9644e23
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:07:11 2023 +0300
code: добавлен вывод суммы a и b
commit e6c9e23a35edcbd9b48e642b13afcfa079908252
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 12:59:30 2023 +0300
code: добавлен ввод чисел а и b
:
Опробуем команду git log --stat
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --stat
commit a60d1665e7a73b34587bab56f66af527f2d09ce3 (HEAD -> main)
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:33:25 2023 +0300
git: игнорирование bin obj, project.layout, project.depend
.gitignore | 4 ++++
1 file changed, 4 insertions(+)
commit 8eb470b4a12735fed370131bfa0933f58172eeb3
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:14:08 2023 +0300
code: добавлен вывод разности переменных a и b
main.cpp | 1 +
1 file changed, 1 insertion(+)
commit aa88cf543912ef9204b56f84a2f61f4fb9644e23
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:07:11 2023 +0300
code: добавлен вывод суммы a и b
:...skipping...
commit a60d1665e7a73b34587bab56f66af527f2d09ce3 (HEAD -> main)
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:33:25 2023 +0300
git: игнорирование bin obj, project.layout, project.depend
.gitignore | 4 ++++
1 file changed, 4 insertions(+)
commit 8eb470b4a12735fed370131bfa0933f58172eeb3
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:14:08 2023 +0300
code: добавлен вывод разности переменных a и b
main.cpp | 1 +
1 file changed, 1 insertion(+)
commit aa88cf543912ef9204b56f84a2f61f4fb9644e23
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:07:11 2023 +0300
code: добавлен вывод суммы a и b
main.cpp | 1 +
1 file changed, 1 insertion(+)
commit e6c9e23a35edcbd9b48e642b13afcfa079908252
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 12:59:30 2023 +0300
code: добавлен ввод чисел а и b
main.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit 2463abc57d29438cd9a96234289edb04b7fabc47
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 12:44:12 2023 +0300
buld: добавлен файл проекта
project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
commit 110ab47f64e3b20e57dfa0fde1666092976adae2
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 12:38:42 2023 +0300
code: заготовка программы
main.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
~
~
~
~
(END)
Для последнего коммита показывается его хэш(первая строка), кем он был внесен( вторая строка), дата его внесения (третья строка), его содержание (четвертая строка), файл, для которого внесен "коммит" (пятая строка).
Напишем команду git log --oneline --decorate
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate
a60d166 (HEAD -> main) git: игнорирование bin obj, project.layout, project.depend
8eb470b code: добавлен вывод разности переменных a и b
aa88cf5 code: добавлен вывод суммы a и b
e6c9e23 code: добавлен ввод чисел а и b
2463abc buld: добавлен файл проекта
110ab47 code: заготовка программы
Напишем команду git log --oneline --decorate --all --graph
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* a60d166 (HEAD -> main) git: игнорирование bin obj, project.layout, project.depend
* 8eb470b code: добавлен вывод разности переменных a и b
* aa88cf5 code: добавлен вывод суммы a и b
* e6c9e23 code: добавлен ввод чисел а и b
* 2463abc buld: добавлен файл проекта
* 110ab47 code: заготовка программы
Найдем коммиты по теме build
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --grep 'buld:'
commit 2463abc57d29438cd9a96234289edb04b7fabc47
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 12:44:12 2023 +0300
buld: добавлен файл проекта
Теперь найдем коммиты, касающийся project.cbp
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log -- project.cbp
commit 2463abc57d29438cd9a96234289edb04b7fabc47
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 12:44:12 2023 +0300
buld: добавлен файл проекта
9. Просмотрим предпоследний коммит первым способом
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git show HEAD~1
commit 8eb470b4a12735fed370131bfa0933f58172eeb3
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:14:08 2023 +0300
code: добавлен вывод разности переменных a и b
diff --git a/main.cpp b/main.cpp
index d96d258..eff5715 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';
}
Посмотрим коммит вторым способом
$ git show main~1
commit 8eb470b4a12735fed370131bfa0933f58172eeb3
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:14:08 2023 +0300
code: добавлен вывод разности переменных a и b
diff --git a/main.cpp b/main.cpp
index d96d258..eff5715 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';
}
Посмотрим коммит третьим способом
$ git show 8eb470b4a12735fed370131bfa0933f58172eeb3
commit 8eb470b4a12735fed370131bfa0933f58172eeb3
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:14:08 2023 +0300
code: добавлен вывод разности переменных a и b
diff --git a/main.cpp b/main.cpp
index d96d258..eff5715 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';
}
10. Внесем изменения в main.cpp: добавим печать произведения чисел, но не станем пока делать коммит.
Восплоьзуемся командой git diff и посмотрим на результат
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff
diff --git a/main.cpp b/main.cpp
index eff5715..7f46857 100644
--- a/main.cpp
+++ b/main.cpp
@@ -9,4 +9,5 @@ int main()
cin >> a >> b;
cout << "A + B = " << a + b << '\n';
cout << "A + B = " << a - b << '\n';
+ cout << "A * B = " << a * b << '\n';
}
Нам выдало код из main.cpp, причем "+" перед строкой показывается, что мы добавили строку кода
Просмотрим изменения между первым коммитом и коммитом, добавляющим разность переменных
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git show HEAD~1 HEAD~3
commit 8eb470b4a12735fed370131bfa0933f58172eeb3
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:14:08 2023 +0300
code: добавлен вывод разности переменных a и b
diff --git a/main.cpp b/main.cpp
index d96d258..eff5715 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';
}
commit e6c9e23a35edcbd9b48e642b13afcfa079908252
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 12:59:30 2023 +0300
code: добавлен ввод чисел а и b
:
11. "Закоммитем" вывод произведения a и b
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: Добавлен вывод произведения a и b '
[main 5e795c4] code: Добавлен вывод произведения a и b
1 file changed, 1 insertion(+)
Откатим состояние рабочей копии
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at a60d166 git: игнорирование bin obj, project.layout, project.depend
Добавим над функцией main() комментарий
Уберем изменения в main.cpp другим способом
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git checkout HEAD -- main.cpp
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$
Строчка кода из программы пропала
12. Создадим ключи
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Yusuf/.ssh/id_rsa):
Created directory '/c/Users/Yusuf/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Yusuf/.ssh/id_rsa
Your public key has been saved in /c/Users/Yusuf/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:oVYb/gtW+6V0u5iIspTcrFDEy6KTg9HPDR2rEnN6SDw Yusuf@YunusLap
The key's randomart image is:
+---[RSA 3072]----+
| |
| . |
| + + |
| o + B + |
|. E + O S . |
| + % O + o . |
|. O * = = o . o |
| = o.o o = * . |
| oo. o = o. |
+----[SHA256]-----+
Запустим агента для для загрузка ключа
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ eval $(ssh-agent -s)
Agent pid 2097
Загрузим ключ
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ ssh-add
Identity added: /c/Users/Yusuf/.ssh/id_rsa (Yusuf@YunusLap)
Отобразим открытый ключ
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiF8irof5XSL6pb8oIzqfOwcSNze1rnDO5nrAclnzprlumxV9hYlOr/UDLIpYGPKwCGdVbvX28jI/tIrGyf1gK6S/CJf+dXS6qnuClWk/iRsfz7FcftomHRTw1cXBtMY5fBDBVCdJiQcveWzLFTzUUmzQIE7KGpp4b+BATRw2K8kkR06liy+iWVMXe5TtqC0nZj7AcCbGTCl/ADddbPvJHTJPkfAd00MGLPfJh9WNtR3jJwozIQHWRpzWSHqZrl9Tl59iVh5NqsKEt8gg6IxF44d3jQVBVdVz6HWoenxbfe1K58ClPBowLHfy7uc3MpXHrTB4RE3Rh5ybUGGE2FS3kIND7lqIpmijDLCKIgk8psU558eOqIZqjPvNnskj+shxjePcr91eeps6eLcvD+Uz3kN15iXaFjDBVGHLl7oB/hSC3XWkYBGt8YlraIad7xBVeRAbVdNEhb/Gg2HjCrZ07Y3YiNnANqv09CfyRVldXFjJQhdGgJG+rirnCB3/bI6s= Yusuf@YunusLap
Создал ключ в GIT УИТ
12. Создал репозитарий
Выполнил указанные рекомендацией команды
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git remote add origin git@uit.mpei.ru:YusufovYB/cs-lab02.git
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push -u origin main
The authenticity of host 'uit.mpei.ru (193.233.68.149)' can't be established.
ED25519 key fingerprint is SHA256:Q5w0UKEzQKA3J6NyMtjwCLvtAykoxdugIXjx6NwU4NA.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'uit.mpei.ru' (ED25519) to the list of known hosts.
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 12 threads
Compressing objects: 100% (16/16), done.
Writing objects: 100% (18/18), 2.36 KiB | 403.00 KiB/s, done.
Total 18 (delta 2), reused 0 (delta 0), pack-reused 0
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:YusufovYB/cs-lab02.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
13. Открыл bash в каталоге bob, клонировал туда проект и через git config настроил пользователя
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob
$ git clone git@uit.mpei.ru:YusufovYB/cs-lab02.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.
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob
$ cd project
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.name 'Bob(YusufovYB)'
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.email 'YusufovYB@mpei.ru'
14. От лица Боба добавил в код строку вывода произведение чисел a и b, "закоммител".
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git status
On branch main
Your branch is up to date with 'origin/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
no changes added to commit (use "git add" and/or "git commit -a")
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m 'code: добавлен вывод произведения a и b'
[main 06dee65] code: добавлен вывод произведения a и b
1 file changed, 1 insertion(+)
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log
commit 06dee65817696673831f8980eb223a1f46e12cfc (HEAD -> main)
Author: Bob(YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 21:22:08 2023 +0300
code: добавлен вывод произведения a и b
commit a60d1665e7a73b34587bab56f66af527f2d09ce3 (origin/main, origin/HEAD)
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:33:25 2023 +0300
git: игнорирование bin obj, project.layout, project.depend
commit 8eb470b4a12735fed370131bfa0933f58172eeb3
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:14:08 2023 +0300
code: добавлен вывод разности переменных a и b
commit aa88cf543912ef9204b56f84a2f61f4fb9644e23
Author: Alice (YusufovYB) <YusufovYB@mpei.ru>
Date: Sat Mar 25 13:07:11 2023 +0300
code: добавлен вывод суммы a и b
:
Отправил "коммит" на сервер
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 429 bytes | 429.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:YusufovYB/cs-lab02.git
a60d166..06dee65 main -> main
В удаленном репозитарии обновилась ветка code.
На машине Алисы выполнил загрузку изменений
Yusuf@YunusLap 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), 409 bytes | 51.00 KiB/s, done.
From uit.mpei.ru:YusufovYB/cs-lab02
a60d166..06dee65 main -> origin/main
При этом в рабочей копии не произошло изменений
Посмотрим на историю всех веток
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 06dee65 (origin/main) code: добавлен вывод произведения a и b
* a60d166 (HEAD -> main) git: игнорирование bin obj, project.layout, project.depend
* 8eb470b code: добавлен вывод разности переменных a и b
* aa88cf5 code: добавлен вывод суммы a и b
* e6c9e23 code: добавлен ввод чисел а и b
* 2463abc buld: добавлен файл проекта
* 110ab47 code: заготовка программы
Действительно, ветка main отстает от ветки origin/main на один "коммит"
Продвину ветку main к скачанной версии
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git pull --ff-only
Updating a60d166..06dee65
Fast-forward
main.cpp | 1 +
1 file changed, 1 insertion(+)
Теперь рабочая версия Алисы соответсвует рабочей копии Боба
Добавим от лица Алисы в код вывод деления переменных a и b , сделаем "коммит" и отправим его на удаленный репозитарий
$ git status
On branch main
Your branch is up to date with 'origin/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
no changes added to commit (use "git add" and/or "git commit -a")
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -a -m 'code: Добавлен вывод деления переменных a и b'
[main b914887] code: Добавлен вывод деления переменных a и b
1 file changed, 1 insertion(+)
И отправим на удаленный репозитарий
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 436 bytes | 436.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:YusufovYB/cs-lab02.git
06dee65..b914887 main -> main
Ветка main обновилась
Через машину Боба загружаем изменения
Yusuf@YunusLap 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), 416 bytes | 24.00 KiB/s, done.
From uit.mpei.ru:YusufovYB/cs-lab02
06dee65..b914887 main -> origin/main
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* b914887 (origin/main, origin/HEAD) code: Добавлен вывод деления переменных a и b
* 06dee65 (HEAD -> main) code: добавлен вывод произведения a и b
* a60d166 git: игнорирование bin obj, project.layout, project.depend
* 8eb470b code: добавлен вывод разности переменных a и b
* aa88cf5 code: добавлен вывод суммы a и b
* e6c9e23 code: добавлен ввод чисел а и b
* 2463abc buld: добавлен файл проекта
* 110ab47 code: заготовка программы
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git pull --ff-only
Updating 06dee65..b914887
Fast-forward
main.cpp | 1 +
1 file changed, 1 insertion(+)
Рабочая копия Боба изменилась
15. Добавим в код от лица Алисы вывод максимального из чисел
"Закоммитем" изменения и отправим на удаленный репозитарий
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Your branch is up to date with 'origin/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
no changes added to commit (use "git add" and/or "git commit -a")
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: Добавлен вывод наибольшего числа между a и b '
[main 170256f] code: Добавлен вывод наибольшего числа между a и b
1 file changed, 6 insertions(+)
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 488 bytes | 488.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:YusufovYB/cs-lab02.git
b914887..170256f main -> main
Теперь от лица Боба добавим печать минимума из чисел
"Закоммитем" и отправим на сервер
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git status
On branch main
Your branch is up to date with 'origin/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
no changes added to commit (use "git add" and/or "git commit -a")
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m "code: Добавлено вывод наименьшего числа между a и b "
[main 69c3981] code: Добавлено вывод наименьшего числа между a и b
1 file changed, 6 insertions(+)
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
To uit.mpei.ru:YusufovYB/cs-lab02.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'uit.mpei.ru:YusufovYB/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.
Загрузим изменения с сервера
Yusuf@YunusLap 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), 468 bytes | 26.00 KiB/s, done.
From uit.mpei.ru:YusufovYB/cs-lab02
b914887..170256f main -> origin/main
Загружаем историю всех веток
$ git log --oneline --decorate --graph
* 69c3981 (HEAD -> main) code: Добавлено вывод наименьшего числа между a и b
* b914887 code: Добавлен вывод деления переменных a и b
* 06dee65 code: добавлен вывод произведения a и b
* a60d166 git: игнорирование bin obj, project.layout, project.depend
* 8eb470b code: добавлен вывод разности переменных a и b
* aa88cf5 code: добавлен вывод суммы a и b
* e6c9e23 code: добавлен ввод чисел а и b
* 2463abc buld: добавлен файл проекта
* 110ab47 code: заготовка программы
Удалили метки конфликта из кода, привел его в рабочее состояние с учетом изменений, сделанных Бобом и Алисой.
Продолжил дальше команду rebase.
Результат
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
$ git rebase --continue
Successfully rebased and updated refs/heads/main.
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
$ git log --oneline --decorate --graph
* 0514f65 (HEAD) code: Добавлено вывод наименьшего числа между a и b
* 170256f (origin/main, origin/HEAD) code: Добавлен вывод наибольшего числа между a и b
* b914887 code: Добавлен вывод деления переменных a и b
* 06dee65 code: добавлен вывод произведения a и b
* a60d166 git: игнорирование bin obj, project.layout, project.depend
* 8eb470b code: добавлен вывод разности переменных a и b
* aa88cf5 code: добавлен вывод суммы a и b
* e6c9e23 code: добавлен ввод чисел а и b
* 2463abc buld: добавлен файл проекта
* 110ab47 code: заготовка программы
Отправим на удаленный репозитарий
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 473 bytes | 473.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:YusufovYB/cs-lab02.git
170256f..0514f65 main -> main
16. На машине Алисы создадим ветку double и переключимся на нее
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git branch double
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (double)
$
Поменяю тип переменных a и b на double и закоммичу изменения
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (double)
$ git add main.cpp
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (double)
$ git commit -m 'code: тип переменных a и b изменен с int на double'
[double 3c76fed] code: тип переменных a и b изменен с int на double
1 file changed, 1 insertion(+), 1 deletion(-)
Переключусь на ветку main
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (double)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$
Синхронизирую ветку main у Алисы с удаленным репозитарием
Yusuf@YunusLap 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), 453 bytes | 14.00 KiB/s, done.
From uit.mpei.ru:YusufovYB/cs-lab02
170256f..0514f65 main -> origin/main
Откроем историю веток
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 3c76fed (double) code: тип переменных a и b изменен с int на double
| * 0514f65 (origin/main) code: Добавлено вывод наименьшего числа между a и b
|/
* 170256f (HEAD -> main) code: Добавлен вывод наибольшего числа между a и b
* b914887 code: Добавлен вывод деления переменных a и b
* 06dee65 code: добавлен вывод произведения a и b
* a60d166 git: игнорирование bin obj, project.layout, project.depend
* 8eb470b code: добавлен вывод разности переменных a и b
* aa88cf5 code: добавлен вывод суммы a и b
* e6c9e23 code: добавлен ввод чисел а и b
* 2463abc buld: добавлен файл проекта
* 110ab47 code: заготовка программы
Сделаем слияние веток main и double
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git merge double
Updating 170256f..3c76fed
Fast-forward
main.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Посмотрим теперь на историю веток
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 3c76fed (HEAD -> main, double) code: тип переменных a и b изменен с int на double
| * 0514f65 (origin/main) code: Добавлено вывод наименьшего числа между a и b
|/
* 170256f code: Добавлен вывод наибольшего числа между a и b
* b914887 code: Добавлен вывод деления переменных a и b
* 06dee65 code: добавлен вывод произведения a и b
* a60d166 git: игнорирование bin obj, project.layout, project.depend
* 8eb470b code: добавлен вывод разности переменных a и b
* aa88cf5 code: добавлен вывод суммы a и b
* e6c9e23 code: добавлен ввод чисел а и b
* 2463abc buld: добавлен файл проекта
* 110ab47 code: заготовка программы
Изменения применим к машине Алисы и отправим на сервер
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git pull
Auto-merging main.cpp
Merge made by the 'ort' strategy.
main.cpp | 6 ++++++
1 file changed, 6 insertions(+)
Yusuf@YunusLap MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 12 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 778 bytes | 389.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:YusufovYB/cs-lab02.git
0514f65..e4672c7 main -> main