diff --git a/Отчет.txt b/Отчет.txt new file mode 100644 index 0000000..a3f155f --- /dev/null +++ b/Отчет.txt @@ -0,0 +1,1331 @@ +Отчет по лабораторной работе № 2 "Система контроля версий Git" + +Выполнил: Латышев Г. И. +Группа: А-02-24 +Проверил: + +Примечание: работа выполнялась на Windows. + +--Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02 +$ + +--Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02 +$ ls + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02 +$ + +--Создал каталоги Алисы и Боба, создал каталог "project", +изучил команду "cd" в процессе: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02 +$ mkdir alice + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02 +$ mkdir bob + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02 +$ cd alice + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice +$ mkdir project + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice +$ cd .. + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02 +$ cd alice + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice +$ cd project + +--Инициализировал репозитарий: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project +$ git init +Initialized empty Git repository in C:/Users/German/Desktop/Проги С2/lab02/alice/project/.git/ + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (master) +$ + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (master) +$ git branch -m main + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git config user.name 'Alice (LatyshevGI)' + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git config user.email 'LatyshevGI@mpei.ru' + +У меня имя ветки по умолчанию не настроено. +Git создал ветку под названием master, что видно в приглашении терминала. +Я принял решение поменять имя ветки на "main". + +--Создал проект в CodeBlocks, проверил состояние копии: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git status +On branch main + +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) + +--Скомпилировал проект, проверил состояние актуальной копии: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git status +On branch main + +No commits yet + +Untracked files: + (use "git add ..." to include in what will be committed) + bin/ + main.cpp + obj/ + project.cbp + +nothing added to commit but untracked files present (use "git add" to track) + +--Как мы видим, пока никакие файлы не "в индексе", но предоставлены варианты для этого. Подсказка предлагает ввести файлы в набор изменений. + +--Так и сделаем. Добавим main.cpp в "индекс", проверим добавили ли его и закоммитим заготовку: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git add main.cpp + +--Добавили файл main.cpp в индекс. + +--Теперь просмотрим его состояние: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/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) + bin/ + obj/ + project.cbp + +--Как мы видим, Git Bash вывел сообщение о том, что у нас добавлен "новый" файл - main.cpp. Закоммитим его: + + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git commit -m 'code: заготовка программы' +[main (root-commit) 9dec975] code: заготовка программы + 1 file changed, 9 insertions(+) + create mode 100644 main.cpp + +--Также добавим projecet.cbp в индекс и закоммитим этот проект: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/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 + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git status +On branch main +Changes to be committed: + (use "git restore --staged ..." to unstage) + new file: project.cbp + +Untracked files: + (use "git add ..." to include in what will be committed) + bin/ + obj/ + +--Проверили находится ли в индекесе project.cbp. Теперь закоммитим его. + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git commit -m 'build: добавлен файл проекта' +[main a1c6dc2] build: добавлен файл проекта + 1 file changed, 40 insertions(+) + create mode 100644 project.cbp + +--Внесли изменения в main.cpp и проверим их наличие в Git Bash: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/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") + +--Git Bash показывает, что у нас есть измененный несохраненный файл, modified, исправим это. Стоит отметить, что при первом вводе команды git status, выводилось, что main.cpp - это новый файл, а теперь - модифицированный. Добавим в индекс main.cpp тремя различными способами, закоммитим: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git add main.cpp + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git commit -m 'code: добавлено действие ввода двух чисел' +[main 76284a2] code: добавлено действие ввода двух чисел + 1 file changed, 4 insertions(+), 1 deletion(-) + +--Пока тестируем разные команды, добавим в main.cpp вывод суммы двух чисел: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git add -u + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git commit -m 'code: добавлено действие вывода суммы двух чисел' +[main 7ee3c48] code: добавлено действие вывода суммы двух чисел + 1 file changed, 2 insertions(+) + +--А также добавим вывод разности двух чисел: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git commit -a -m 'code: добавлено действие вывода разности двух чисел' +[main cb760ee] code: добавлено действие вывода разности двух чисел + 1 file changed, 2 insertions(+), 1 deletion(-) + +--Проверим еще раз, прошли ли изменения. Убедились, что, да. + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git status +On branch main +Untracked files: + (use "git add ..." to include in what will be committed) + bin/ + obj/ + +nothing added to commit but untracked files present (use "git add" to track) + +--Видим разные "лишние" файлы, которые можно скрыть. Для этого добавим в проект project.cbp пустой файл .gitignore. Внесем в него наименования bin/ и obj/, а затем закоммитим: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git status +On branch main +Untracked files: + (use "git add ..." to include in what will be committed) + .gitignore + +nothing added to commit but untracked files present (use "git add" to track) + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git add .gitignore + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git commit -m 'git: добавлено игнорирование файлов' +[main 1f10060] git: добавлено игнорирование файлов + 1 file changed, 2 insertions(+) + create mode 100644 .gitignore + +--Теперь просмотрим историю коммитов при помощи команды "log": + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log +commit 1f10060a1a2cfb6b72e2ab2c48ac54fd8fcf4032 (HEAD -> main) +Author: Alice (LatyshevGI) +Date: Sat Mar 22 18:02:55 2025 +0300 + + git: добавлено игнорирование файлов + +commit cb760ee38df738c68870b685109bbcd397d5c870 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:59:19 2025 +0300 + + code: добавлено действие вывода разности двух чисел + +commit 7ee3c48bcd5b2889157093fd0f08d0793fdb6072 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:55:34 2025 +0300 + + code: добавлено действие вывода суммы двух чисел + +commit 76284a208e0d98d287a2fad9699306ad8bc4b57a +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:52:58 2025 +0300 + + code: добавлено действие ввода двух чисел + +commit a1c6dc2389809e098db838bb420275491ccd270a +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:48:16 2025 +0300 + + build: добавлен файл проекта + +commit 9dec9752d1b48369cc0ebb2db92febcb89956175 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:46:55 2025 +0300 + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --stat +commit 1f10060a1a2cfb6b72e2ab2c48ac54fd8fcf4032 (HEAD -> main) +Author: Alice (LatyshevGI) +Date: Sat Mar 22 18:02:55 2025 +0300 + + git: добавлено игнорирование файлов + + .gitignore | 2 ++ + 1 file changed, 2 insertions(+) + +commit cb760ee38df738c68870b685109bbcd397d5c870 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:59:19 2025 +0300 + + code: добавлено действие вывода разности двух чисел + + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 7ee3c48bcd5b2889157093fd0f08d0793fdb6072 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:55:34 2025 +0300 + + code: добавлено действие вывода суммы двух чисел + + main.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +commit 76284a208e0d98d287a2fad9699306ad8bc4b57a +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:52:58 2025 +0300 + + code: добавлено действие ввода двух чисел + +--Ввели команду git log --stat. Сначала нам покажется хэш последнего коммита, затем его автор - Alice, его почта, дата, наименование коммита и какие строки в каком файле были изменены/добавлены. Потом уточняется, сколько файлов было изменено и сколько в них изменений. + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --stat +commit 1f10060a1a2cfb6b72e2ab2c48ac54fd8fcf4032 (HEAD -> main) +Author: Alice (LatyshevGI) +Date: Sat Mar 22 18:02:55 2025 +0300 + + git: добавлено игнорирование файлов + + .gitignore | 2 ++ + 1 file changed, 2 insertions(+) + +commit cb760ee38df738c68870b685109bbcd397d5c870 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:59:19 2025 +0300 + + code: добавлено действие вывода разности двух чисел + + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 7ee3c48bcd5b2889157093fd0f08d0793fdb6072 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:55:34 2025 +0300 + + code: добавлено действие вывода суммы двух чисел + + main.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +commit 76284a208e0d98d287a2fad9699306ad8bc4b57a +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:52:58 2025 +0300 + + code: добавлено действие ввода двух чисел + + main.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit a1c6dc2389809e098db838bb420275491ccd270a +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:48:16 2025 +0300 + + build: добавлен файл проекта + + project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 40 insertions(+) + +commit 9dec9752d1b48369cc0ebb2db92febcb89956175 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:46:55 2025 +0300 + + code: заготовка программы + + main.cpp | 9 +++++++++ + 1 file changed, 9 insertions(+) + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --oneline --decorate +1f10060 (HEAD -> main) git: добавлено игнорирование файлов +cb760ee code: добавлено действие вывода разности двух чисел +7ee3c48 code: добавлено действие вывода суммы двух чисел +76284a2 code: добавлено действие ввода двух чисел +a1c6dc2 build: добавлен файл проекта +9dec975 code: заготовка программы + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 1f10060 (HEAD -> main) git: добавлено игнорирование файлов +* cb760ee code: добавлено действие вывода разности двух чисел +* 7ee3c48 code: добавлено действие вывода суммы двух чисел +* 76284a2 code: добавлено действие ввода двух чисел +* a1c6dc2 build: добавлен файл проекта +* 9dec975 code: заготовка программы + +--Используем команду git log -- main.cpp, которая показывает затрагивающие main.cpp + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log -- main.cpp +commit cb760ee38df738c68870b685109bbcd397d5c870 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:59:19 2025 +0300 + + code: добавлено действие вывода разности двух чисел + +commit 7ee3c48bcd5b2889157093fd0f08d0793fdb6072 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:55:34 2025 +0300 + + code: добавлено действие вывода суммы двух чисел + +commit 76284a208e0d98d287a2fad9699306ad8bc4b57a +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:52:58 2025 +0300 + + code: добавлено действие ввода двух чисел + +commit 9dec9752d1b48369cc0ebb2db92febcb89956175 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:46:55 2025 +0300 + + code: заготовка программы + +--Используем команду git log --grep "code:", которая показывает коммиты с code: в сообщении. + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --grep 'code:' +commit cb760ee38df738c68870b685109bbcd397d5c870 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:59:19 2025 +0300 + + code: добавлено действие вывода разности двух чисел + +commit 7ee3c48bcd5b2889157093fd0f08d0793fdb6072 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:55:34 2025 +0300 + + code: добавлено действие вывода суммы двух чисел + +commit 76284a208e0d98d287a2fad9699306ad8bc4b57a +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:52:58 2025 +0300 + + code: добавлено действие ввода двух чисел + +commit 9dec9752d1b48369cc0ebb2db92febcb89956175 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:46:55 2025 +0300 + + code: заготовка программы + +--Найдем сначала коммиты по теме build: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --grep 'build:' +commit a1c6dc2389809e098db838bb420275491ccd270a +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:48:16 2025 +0300 + + build: добавлен файл проекта + +--Теперь просмотрим коммиты, затрагивающие project.cbp: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log -- project.cbp +commit a1c6dc2389809e098db838bb420275491ccd270a +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:48:16 2025 +0300 + + build: добавлен файл проекта + +--Просмотрим содержимое отдельных коммитов разными командами: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git show HEAD +commit 1f10060a1a2cfb6b72e2ab2c48ac54fd8fcf4032 (HEAD -> main) +Author: Alice (LatyshevGI) +Date: Sat Mar 22 18:02:55 2025 +0300 + + git: добавлено игнорирование файлов + +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..4c7473d +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++/bin ++/obj + +--Посмотрим последний коммит по имени ветви: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git show main +commit 1f10060a1a2cfb6b72e2ab2c48ac54fd8fcf4032 (HEAD -> main) +Author: Alice (LatyshevGI) +Date: Sat Mar 22 18:02:55 2025 +0300 + + git: добавлено игнорирование файлов + +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..4c7473d +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++/bin ++/obj + +--Посмотрим последний коммит по хэшу: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git show 1f10060a1a2cfb6b72e2ab2c48ac54fd8fcf4032 +commit 1f10060a1a2cfb6b72e2ab2c48ac54fd8fcf4032 (HEAD -> main) +Author: Alice (LatyshevGI) +Date: Sat Mar 22 18:02:55 2025 +0300 + + git: добавлено игнорирование файлов + +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..4c7473d +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++/bin ++/obj + +--Посмотрим теперь предпоследний коммит тремя разными способами: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git show HEAD~1 +commit cb760ee38df738c68870b685109bbcd397d5c870 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:59:19 2025 +0300 + + code: добавлено действие вывода разности двух чисел + +diff --git a/main.cpp b/main.cpp +index e1391fe..0151b23 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,7 +8,8 @@ int main() + int a, b; + cin >> a >> b; + +- cout << "A + B = " << a + b << '\n'; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + + return 0; + } + +--Также есть альтернатива HEAD~1 - это main~1: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git show main~1 +commit cb760ee38df738c68870b685109bbcd397d5c870 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:59:19 2025 +0300 + + code: добавлено действие вывода разности двух чисел + +diff --git a/main.cpp b/main.cpp +index e1391fe..0151b23 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,7 +8,8 @@ int main() + int a, b; + cin >> a >> b; + +- cout << "A + B = " << a + b << '\n'; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + + return 0; + } + +--Посмотрим предпоследний коммит по хэшу: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git show cb760ee38df738c68870b685109bbcd397d5c870 +commit cb760ee38df738c68870b685109bbcd397d5c870 +Author: Alice (LatyshevGI) +Date: Sat Mar 22 17:59:19 2025 +0300 + + code: добавлено действие вывода разности двух чисел + +diff --git a/main.cpp b/main.cpp +index e1391fe..0151b23 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,7 +8,8 @@ int main() + int a, b; + cin >> a >> b; + +- cout << "A + B = " << a + b << '\n'; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + + return 0; + } + +--Просмотрели предпоследний коммит. Теперь просмотрим изменения: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git diff +diff --git a/main.cpp b/main.cpp +index 0151b23..0b5571f 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -9,7 +9,8 @@ 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'; + + return 0; + } + +--Git Bash первой строкой показывает файл, который имел вид до ввода его в индекс, предыдущей актуальной копии, а затем показывает файл, который имеет теперь конечный вид после ввода в индекс, то есть, актуальной рабочей копии. Минусами "-" показано, какие компоненты были удалены из файла, а плюсами "+" - какие добавлены. + +--Посмотрим изменения. Первый аргумент команды git diff включает показ изменений от указанного коммита до последнего, включая изменения в рабочей копии: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git diff HEAD~2 +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..4c7473d +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++/bin ++/obj +diff --git a/main.cpp b/main.cpp +index e1391fe..0b5571f 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,7 +8,9 @@ int main() + int a, b; + cin >> a >> b; + +- cout << "A + B = " << a + b << '\n'; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n' ++ << "A * B = " << a * b << '\n'; + + return 0; + } + +--С двумя аргументами команда показывает разницу между указанными коммитами, например, так можно исключить изменения в рабочей копии из вывода предыдущей команды: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git diff HEAD~2 HEAD +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..4c7473d +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++/bin ++/obj +diff --git a/main.cpp b/main.cpp +index e1391fe..0151b23 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,7 +8,8 @@ int main() + int a, b; + cin >> a >> b; + +- cout << "A + B = " << a + b << '\n'; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + + return 0; + } + +--Проверил, как работает функция "diff". Теперь просмотрю изменения между самым первым коммитом и коммитом, добавляющим вывод разности: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git diff HEAD~5 HEAD~1 +diff --git a/main.cpp b/main.cpp +index b4392ec..0151b23 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -4,6 +4,12 @@ using namespace std; + + int main() + { +- cout << "Hello world!" << endl; ++ cout << "Enter A and B: "; ++ int a, b; ++ cin >> a >> b; ++ ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; ++ + return 0; + } +diff --git a/project.cbp b/project.cbp +new file mode 100644 +index 0000000..99bb702 +--- /dev/null ++++ b/project.cbp +@@ -0,0 +1,40 @@ ++ ++ ++ ++ ++ ++ + +--Займемся проверкой отката изменений. Проверим работу команды "reset". Для этого добавим изменения в main.cpp и закоммитим их: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git add main.cpp + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git commit -m 'code: добавлено действие вывода произведения двух чисел' +[main 02cb027] code: добавлено действие вывода произведения двух чисел + 1 file changed, 2 insertions(+), 1 deletion(-) + +--Теперь откатим изменения. Можно сделать двумя разными способами: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git reset --hard HEAD~1 +HEAD is now at 1f10060 git: добавлено игнорирование файлов + +--Здесь HEAD~1 указывает на коммит, к которому нужно откатить состояние рабочей копии, а ключ --hard означает, что нужно привести рабочую копию точно к состоянию выбранного коммита. + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git checkout HEAD -- main.cpp + +--Начнем отправку своих данных на сервер. Займемся генерацией ключа, чтобы оптимизировать передачу данных на удаленное хранилище: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ ssh-keygen +Generating public/private ed25519 key pair. +Enter file in which to save the key (/c/Users/German/.ssh/id_ed25519): +Created directory '/c/Users/German/.ssh'. +Enter passphrase for "/c/Users/German/.ssh/id_ed25519" (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /c/Users/German/.ssh/id_ed25519 +Your public key has been saved in /c/Users/German/.ssh/id_ed25519.pub +The key fingerprint is: +SHA256:0ujICz2wyBM8Kll3YZ1d4psNTZuXb3KHyRWowBczh5o German@DESKTOP-VOTQ4U6 +The key's randomart image is: ++--[ED25519 256]--+ +| . .+=... | +| . * B++ ..| +| o o O = o .| +|. . + E * o = | +| +o . + S o . = =| +|o+o* + . +.| +|=oo = . | +|. .. o | +| . | ++----[SHA256]-----+ + +--Создали пару ключей: открытый, чтобы другие могли просматривать коммиты, и закрытый, чтобы был доступ к редактированию коммитов. + +--Вводить пароль каждый раз, когда используется ключ, неудобно. Поэтому используем программу-агента, которая работает в фоне и предоставляет ключи GITу. Пароль требуется тогда вводить один раз - при загрузке ключа в агент. Запустим агента: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ eval $(ssh-agent -s) +Agent pid 720 + +--Загрузим для агента закрытый ключ: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ ssh-add +Enter passphrase for /c/Users/German/.ssh/id_ed25519: +Identity added: /c/Users/German/.ssh/id_ed25519 (German@DESKTOP-VOTQ4U6) + +--Отобразим закрытый ключ: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ cat ~/.ssh/id_ed25519.pub +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3JgP0daCj5W+2kOlDsU4eU8gdhNwsa/ms6BjEaEewV German@DESKTOP-VOTQ4U6 + +--Выполним команды, необходимые для отправки проекта на сервер: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ touch README.md + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git init +Reinitialized existing Git repository in C:/Users/German/Desktop/Проги С2/lab02/alice/project/.git/ + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git checkout -b main +fatal: a branch named 'main' already exists + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git add README.md + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git commit -m "first commit" +[main 357da88] first commit + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 README.md + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git remote add origin http://uit.mpei.ru/git/LatyshevGI/cs-lab02.git + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git push -u origin main +warning: use of unencrypted HTTP remote URLs is not recommended; see https://aka.ms/gcm/unsaferemotes for more information. +Enumerating objects: 21, done. +Counting objects: 100% (21/21), done. +Delta compression using up to 20 threads +Compressing objects: 100% (18/18), done. +Writing objects: 100% (21/21), 2.65 KiB | 1.33 MiB/s, done. +Total 21 (delta 3), reused 0 (delta 0), pack-reused 0 (from 0) +remote: . Processing 1 references +remote: Processed 1 references in total +To http://uit.mpei.ru/git/LatyshevGI/cs-lab02.git + * [new branch] main -> main +branch 'main' set up to track 'origin/main'. + +--Отправили проект на удаленное хранилище. + + +______Машина Боба: + +--К разработке присоединился Боб, клонируем для него проект на его "машину": + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob +$ git clone http://uit.mpei.ru/git/LatyshevGI/cs-lab02.git project +Cloning into 'project'... +remote: Enumerating objects: 21, done. +remote: Counting objects: 100% (21/21), done. +remote: Compressing objects: 100% (18/18), done. +remote: Total 21 (delta 3), reused 0 (delta 0), pack-reused 0 +Receiving objects: 100% (21/21), done. +Resolving deltas: 100% (3/3), done. + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob +$ cd project + +--Так же как и для Алисы настроим конфиг Боба: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git init +Reinitialized existing Git repository in C:/Users/German/Desktop/Проги С2/lab02/bob/project/.git/ + +--Инициализировали. + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git config user.name 'Bob (LatyshevGI)' + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git config user.email 'LatyshevGI@mpei.ru' + +--Добавили данные разработчика. + +--Добавим печать произведения чисел и сделаем коммит: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git add main.cpp + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git commit -m 'code: добавлено действие вывода произведения двух чисел' +[main ddc7052] code: добавлено действие вывода произведения двух чисел + 1 file changed, 2 insertions(+), 1 deletion(-) + +--На всякий случай посмотрим изменения и историю коммитов: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git log --oneline --decorate +ddc7052 (HEAD -> main) code: добавлено действие вывода произведения двух чисел +357da88 (origin/main, origin/HEAD) first commit +1f10060 git: добавлено игнорирование файлов +cb760ee code: добавлено действие вывода разности двух чисел +7ee3c48 code: добавлено действие вывода суммы двух чисел +76284a2 code: добавлено действие ввода двух чисел +a1c6dc2 build: добавлен файл проекта +9dec975 code: заготовка программы + +--Теперь загрузим проект на сервер: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git push +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 20 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 393 bytes | 393.00 KiB/s, done. +Total 3 (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/LatyshevGI/cs-lab02.git + 357da88..ddc7052 main -> main + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ + +______Машина Алисы: + +--Получим данные на "машине" Алисы: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/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 2), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 373 bytes | 23.00 KiB/s, done. +From http://uit.mpei.ru/git/LatyshevGI/cs-lab02 + 357da88..ddc7052 main -> origin/main + +--Проверим вступили ли изменения в силу: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --oneline --decorate +357da88 (HEAD -> main) first commit +1f10060 git: добавлено игнорирование файлов +cb760ee code: добавлено действие вывода разности двух чисел +7ee3c48 code: добавлено действие вывода суммы двух чисел +76284a2 code: добавлено действие ввода двух чисел +a1c6dc2 build: добавлен файл проекта +9dec975 code: заготовка программы + +--Проверим другой командой вступили ли изменения в силу: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* ddc7052 (origin/main, origin/HEAD) code: добавлено действие вывода произведения двух чисел +* 357da88 (HEAD -> main) first commit +* 1f10060 git: добавлено игнорирование файлов +* cb760ee code: добавлено действие вывода разности двух чисел +* 7ee3c48 code: добавлено действие вывода суммы двух чисел +* 76284a2 code: добавлено действие ввода двух чисел +* a1c6dc2 build: добавлен файл проекта +* 9dec975 code: заготовка программы + +--Как мы видим, ветка main отстает на один коммит от версии ветки main из удаленного репозитария под названием origin, то есть на сервере. По этой причине продвинем ветку main к скачанной версии: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git pull --ff-only +Updating 357da88..ddc7052 +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--Проверим, сработало ли "продвижение" ветки: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* ddc7052 (HEAD -> main, origin/main, origin/HEAD) code: добавлено действие вывода произведения двух чисел +* 357da88 first commit +* 1f10060 git: добавлено игнорирование файлов +* cb760ee code: добавлено действие вывода разности двух чисел +* 7ee3c48 code: добавлено действие вывода суммы двух чисел +* 76284a2 code: добавлено действие ввода двух чисел +* a1c6dc2 build: добавлен файл проекта +* 9dec975 code: заготовка программы + +--Добавим в программу печать деления, сделаем коммит, и отправим его на сервер: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git add main.cpp + +--Добавили в индекс main.cpp. + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git commit -m 'code: добавлено действие вывода деления двух чисел' +[main 78e0047] code: добавлено действие вывода деления двух чисел + 1 file changed, 2 insertions(+), 1 deletion(-) + +--Сделали коммит для этого изменения. + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git push +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 20 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 402 bytes | 402.00 KiB/s, done. +Total 3 (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/LatyshevGI/cs-lab02.git + ddc7052..78e0047 main -> main + +--Загрузили на сервер наш коммит. + +______Машина Боба: + +--Получим изменения из сервера на "машину" Боба. + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/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 2), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 382 bytes | 10.00 KiB/s, done. +From http://uit.mpei.ru/git/LatyshevGI/cs-lab02 + ddc7052..78e0047 main -> origin/main + +--Продвинем ветку main к скачанной версии: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git pull --ff-only +Updating ddc7052..78e0047 +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +______Машина Алисы: + +--Добавим поиск максимума чисел и закоммитим: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git commit -a -m "code: добавлено действие поиска максимума из двух чисел" +[main dd49aa3] code: добавлено действие поиска максимума из двух чисел + 1 file changed, 10 insertions(+), 2 deletions(-) + +--Закоммитили с помощью универсальной команды, поэтому add main.cpp можно не писать. + +--Загрузим данные на сервер: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git push +Enumerating objects: 7, done. +Counting objects: 100% (7/7), done. +Delta compression using up to 20 threads +Compressing objects: 100% (4/4), done. +Writing objects: 100% (4/4), 604 bytes | 604.00 KiB/s, done. +Total 4 (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/LatyshevGI/cs-lab02.git + 78e0047..dd49aa3 main -> main + + +______Машина Боба: + +--Добавим поиск минимума чисел и закоммитим: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git commit -a -m "code: добавлено действие поиска минимума из двух чисел" +[main b7aa9cf] code: добавлено действие поиска минимума из двух чисел + 1 file changed, 10 insertions(+), 2 deletions(-) + +--Загрузим обновления на сервер: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git push +To http://uit.mpei.ru/git/LatyshevGI/cs-lab02.git + ! [rejected] main -> main (fetch first) +error: failed to push some refs to 'http://uit.mpei.ru/git/LatyshevGI/cs-lab02.git' +hint: Updates were rejected because the remote contains work that you do not +hint: have locally. This is usually caused by another repository pushing to +hint: the same ref. If you want to integrate the remote changes, use +hint: 'git pull' before pushing again. +hint: See the 'Note about fast-forwards' in 'git push --help' for details. + +--Однако, так как Боб не обновлял свой локальный репозитарий, то выдастся ошибка, что коммит Боба не последний. + +--По этой причине загрузим на локальный репозитарий нужные коммита с сервера: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git fetch +remote: Enumerating objects: 7, done. +remote: Counting objects: 100% (7/7), done. +remote: Compressing objects: 100% (4/4), done. +remote: Total 4 (delta 2), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (4/4), 584 bytes | 12.00 KiB/s, done. +From http://uit.mpei.ru/git/LatyshevGI/cs-lab02 + 78e0047..dd49aa3 main -> origin/main + +--Просмотрим теперь историю веток: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* b7aa9cf (HEAD -> main) code: добавлено действие поиска минимума из двух чисел +| * dd49aa3 (origin/main, origin/HEAD) code: добавлено действие поиска максимума из двух чисел +|/ +* 78e0047 code: добавлено действие вывода деления двух чисел +* ddc7052 code: добавлено действие вывода произведения двух чисел +* 357da88 first commit +* 1f10060 git: добавлено игнорирование файлов +* cb760ee code: добавлено действие вывода разности двух чисел +* 7ee3c48 code: добавлено действие вывода суммы двух чисел +* 76284a2 code: добавлено действие ввода двух чисел +* a1c6dc2 build: добавлен файл проекта +* 9dec975 code: заготовка программы + +--Как мы видим, произошло разветвление. Необходимо переместить коммит Боба поверх коммита Алисы с помощью команды "git rebase origin/main": + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git rebase origin/main +Auto-merging main.cpp +CONFLICT (content): Merge conflict in main.cpp +error: could not apply b7aa9cf... 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". +hint: Disable this message with "git config set advice.mergeConflict false" +Could not apply b7aa9cf... code: добавлено действие поиска минимума из двух чисел + +--Ожидаемо, выдало ошибку из-за несоответствия версий. Исправим это и исправим код так, как нам надо. + +--Теперь продолжим наше "перемещение" ветки: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main|REBASE 1/1) +$ git add main.cpp + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main|REBASE 1/1) +$ git rebase --continue +Successfully rebased and updated refs/heads/main. + +--Проверим состояние нашего хранилища: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* df1a921 (HEAD -> main) code: добавлено действие поиска минимума из двух чисел +* dd49aa3 (origin/main, origin/HEAD) code: добавлено действие поиска максимума из двух чисел +* 78e0047 code: добавлено действие вывода деления двух чисел +* ddc7052 code: добавлено действие вывода произведения двух чисел +* 357da88 first commit +* 1f10060 git: добавлено игнорирование файлов +* cb760ee code: добавлено действие вывода разности двух чисел +* 7ee3c48 code: добавлено действие вывода суммы двух чисел +* 76284a2 code: добавлено действие ввода двух чисел +* a1c6dc2 build: добавлен файл проекта +* 9dec975 code: заготовка программы + +--Все в порядке, отправляем изменения на сервер: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/bob/project (main) +$ git push +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 20 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 423 bytes | 423.00 KiB/s, done. +Total 3 (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/LatyshevGI/cs-lab02.git + dd49aa3..df1a921 main -> main + +______Машина Алисы: + +--Алиса находится пока не на последней версии, которую Боб "недавно отправил", она не в курсе. Решила поменять тип данных с int на double, осознавая, что это займет время. Для этого создадим новую ветку, для ясности назовем ее double: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git branch double + +--Переключимся на ветку double: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git checkout double +M main.cpp +Switched to branch 'double' + +--Меняем тип данных на double и коммитим изменения: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (double) +$ git add main.cpp + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (double) +$ git commit -a -m "code: изменен тип чисел с целочисленного на действительный" [double f968742] code: изменен тип чисел с целочисленного на действительный + 1 file changed, 1 insertion(+), 1 deletion(-) + +--Переключаемся на ветку main: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (double) +$ git checkout main +Switched to branch 'main' +Your branch is up to date with 'origin/main'. + +--Синхронизируем ветку main Алисы с удаленным хранилищем: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/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 2), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 403 bytes | 9.00 KiB/s, done. +From http://uit.mpei.ru/git/LatyshevGI/cs-lab02 + dd49aa3..df1a921 main -> origin/main + +--Просмотрим историю веток: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* f968742 (double) code: изменен тип чисел с целочисленного на действительный +| * df1a921 (origin/main, origin/HEAD) code: добавлено действие поиска минимума из двух чисел +|/ +* dd49aa3 (HEAD -> main) code: добавлено действие поиска максимума из двух чисел +* 78e0047 code: добавлено действие вывода деления двух чисел +* ddc7052 code: добавлено действие вывода произведения двух чисел +* 357da88 first commit +* 1f10060 git: добавлено игнорирование файлов +* cb760ee code: добавлено действие вывода разности двух чисел +* 7ee3c48 code: добавлено действие вывода суммы двух чисел +* 76284a2 code: добавлено действие ввода двух чисел +* a1c6dc2 build: добавлен файл проекта +* 9dec975 code: заготовка программы + +--Видим, что пока ответвление никак не связано с основной версией. Это необходимо исправить, поэтому продвинем ветку origin/main до актуальной для машины Алисы: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git pull --ff-only +Updating dd49aa3..df1a921 +Fast-forward + main.cpp | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +--Проверим получилось ли продвинуть, просмотрев историю веток: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* f968742 (double) code: изменен тип чисел с целочисленного на действительный +| * df1a921 (HEAD -> main, origin/main, origin/HEAD) code: добавлено действие поиска минимума из двух чисел +|/ +* dd49aa3 code: добавлено действие поиска максимума из двух чисел +* 78e0047 code: добавлено действие вывода деления двух чисел +* ddc7052 code: добавлено действие вывода произведения двух чисел +* 357da88 first commit +* 1f10060 git: добавлено игнорирование файлов +* cb760ee code: добавлено действие вывода разности двух чисел +* 7ee3c48 code: добавлено действие вывода суммы двух чисел +* 76284a2 code: добавлено действие ввода двух чисел +* a1c6dc2 build: добавлен файл проекта +* 9dec975 code: заготовка программы + +--Займемся сливанием веток, чтобы не было расхождений: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git merge double +fatal: You have not concluded your merge (MERGE_HEAD exists). +Please, commit your changes before you merge. + +--Закоммитим новую ветку: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main|MERGING) +$ git commit -a -m "git: ветка double слита в ветку main" +[main 49a1133] git: ветка double слита в ветку main + +--Просмотрим получилось ли объединить ветки: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 49a1133 (HEAD -> main) git: ветка double слита в ветку main +|\ +| * f968742 (double) code: изменен тип чисел с целочисленного на действительный +* | df1a921 (origin/main, origin/HEAD) code: добавлено действие поиска минимума из двух чисел +|/ +* dd49aa3 code: добавлено действие поиска максимума из двух чисел +* 78e0047 code: добавлено действие вывода деления двух чисел +* ddc7052 code: добавлено действие вывода произведения двух чисел +* 357da88 first commit +* 1f10060 git: добавлено игнорирование файлов +* cb760ee code: добавлено действие вывода разности двух чисел +* 7ee3c48 code: добавлено действие вывода суммы двух чисел +* 76284a2 code: добавлено действие ввода двух чисел +* a1c6dc2 build: добавлен файл проекта +* 9dec975 code: заготовка программы + +--Как мы видим, все получилось. + +--Актуализируем проект, отправив его на сервер: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git push +Enumerating objects: 10, done. +Counting objects: 100% (10/10), done. +Delta compression using up to 20 threads +Compressing objects: 100% (6/6), done. +Writing objects: 100% (6/6), 728 bytes | 728.00 KiB/s, done. +Total 6 (delta 4), 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/LatyshevGI/cs-lab02.git + df1a921..49a1133 main -> main + +--Убедимся в том, что теперь версия Алисы синхронизирована с сервером: + +German@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/Проги С2/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 49a1133 (HEAD -> main, origin/main, origin/HEAD) git: ветка double слита в ветку main +|\ +| * f968742 (double) code: изменен тип чисел с целочисленного на действительный +* | df1a921 code: добавлено действие поиска минимума из двух чисел +|/ +* dd49aa3 code: добавлено действие поиска максимума из двух чисел +* 78e0047 code: добавлено действие вывода деления двух чисел +* ddc7052 code: добавлено действие вывода произведения двух чисел +* 357da88 first commit +* 1f10060 git: добавлено игнорирование файлов +* cb760ee code: добавлено действие вывода разности двух чисел +* 7ee3c48 code: добавлено действие вывода суммы двух чисел +* 76284a2 code: добавлено действие ввода двух чисел +* a1c6dc2 build: добавлен файл проекта +* 9dec975 code: заготовка программы + +--Всё получилось!