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