diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..7ec0caf --- /dev/null +++ b/README.txt @@ -0,0 +1,1491 @@ +Отчет по лабораторной работе № 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 ..." 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 ..." to unstage) + new file: main.cpp + +Untracked files: + (use "git add ..." 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 ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: main.cpp + +Untracked files: + (use "git add ..." 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 ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: main.cpp + +Untracked files: + (use "git add ..." 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 ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: main.cpp + +Untracked files: + (use "git add ..." 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 ..." to unstage) + + new file: main.cpp + + + +Untracked files: + + (use "git add ..." 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 ..." to unstage) + + modified: main.cpp + + + +Untracked files: + + (use "git add ..." 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) + +Date: Sun Apr 7 19:19:47 2024 +0300 + + + + git: добавлено игнорирование файлов + + + + .gitignore | 3 +++ + + 1 file changed, 3 insertions(+) + + + +commit 25143e4c234f2bd80487977386eb15afa27db3c9 + +Author: Alice (ShinkarenkoVA) + +Date: Sun Apr 7 18:56:37 2024 +0300 + + + + code: добавлена разность + + + + main.cpp | 1 + + + 1 file changed, 1 insertion(+) + + + +commit 734f5fb608db6e5f8e0610d59582a02a697d5584 + +Author: Alice (ShinkarenkoVA) + +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) + +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) + +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) + +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) + +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 @@ + ++ + + + +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) + +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 ", 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 ..." 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