From 90bc946aa74f37dbb3e22b40d88537d70611afe0 Mon Sep 17 00:00:00 2001 From: "Alice (DeviatovaMY)" Date: Sun, 31 Mar 2024 18:48:15 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BE=D1=82=D1=87=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- report.txt | 891 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 891 insertions(+) create mode 100644 report.txt diff --git a/report.txt b/report.txt new file mode 100644 index 0000000..df256c6 --- /dev/null +++ b/report.txt @@ -0,0 +1,891 @@ +Отчет по лабораторной работе №2 "Система контроля версий Git" + +Выполнила: Девятова М.Е. +Группа: А-01-23 +Проверил: Козлюк Д.А. + +Примечание: работа выполнялась на Windows + + +1. Создала на рабочем столе каталог lab02 и запустила в нем Git Bash, приглашение: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02 +$ + + +2. Просмотрела файлы в рабочем каталоге с помощью команды ls. В рабочем каталоге пусто: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02 +$ ls + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02 +$ + + +3. Создала каталоги Алисы и Боба для того, чтобы имитировать проект с двумя участниками, с помощью команды mkdir. +С помощью команд cd, cd .., mkdir перешла в каталог alice, создала каталог project, перешла в него, перешла на уровень выше и снова вернулась в него. + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02 +$ mkdir alice + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02 +$ mkdir bob + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02 +$ cd alice + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice +$ mkdir project + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice +$ cd project + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project +$ cd .. + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice +$ cd project + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project +$ + + +4. Инициализировала репозитарий в каталоге project с помощью команды git init. Теперь в приглашении есть (master). +Это имя текущей ветви Git. Подсказки о смене имени ветви не было, по умолчанию стоит master. Пока что менять имя ветви не буду. +С помощью команд config user.name и config user.email настроила репозитарий Алисы, чтобы будущие коммиты были от ее имени. + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project +$ git init +Initialized empty Git repository in C:/Users/ASUS X507UF/Desktop/lab02/alice/project/.git/ + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (master) +$ git config user.name 'Alice (DeviatovaMY)' + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (master) +$ git config user.email 'DeviatovaMY@mpei.ru' + + +5. Создала и собрала проект в репозитарии Алисы. Проверила состояние рабочей копии через git status: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (master) +$ git status +On branch master + +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) + +On branch master - означает, что я нахожусь на ветке master +No commits yet - еще не было коммитов +Untracked files: - здесь перечислены файлы, которые не отслеживаются Git. В скобках подсказка как это исправить +nothing added to commit but untracked files present - означает, что никакие изменения не добавлены для коммита, +но есть неотслеживаемые файлы + +Добавила main.cpp для начала отслеживания через git add и еще раз проверила состояние рабочей копии: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (master) +$ git add main.cpp + +ASUS X507UF@LAPTOP-KB81OPAN 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 + +Из изменений: +Changes to be committed: здесь отслеживаемые и проиндексированные файлы. +Если файл проиндексирован, то при выполнении коммита будет добавлена версия файла, существовавшая на момент выполнения команды git add. +В моем случае здесь находится добавленный main.cpp + + +6. Сделала первый коммит с файлом main.cpp и сообщением: "code: заготовка программы" через git commit -m. +Изменила имя текущей ветки на main через git branch -m. +Добавила project.cbp в индекс и сделала коммит с ним: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (master) +$ git commit -m 'code: заготовка программы' +[master (root-commit) 2ff127d] code: заготовка программы + 1 file changed, 9 insertions(+) + create mode 100644 main.cpp + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (master) +$ git branch -m main + +ASUS X507UF@LAPTOP-KB81OPAN 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 + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'build: добавлен файл проекта' +[main d275a06] build: добавлен файл проекта + 1 file changed, 40 insertions(+) + create mode 100644 project.cbp + +Вылезло небольшое предупреждение, но оно безвредно. + + +7. Изменила код программы. В теле функции main() теперь ввод 2 чисел. Проверила состояние рабочей копии: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (master) +$ git status +On branch master +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") + +Из изменений: +Changes not staged for commit: - здесь измененные, но не проиндексированные файлы. +Если не выполнить команду git add, то новая версия файла не войдет в коммит. +Вместо new file файл main.cpp приобрел статус modified. +no changes added to commit - нет измененных проиндексированных файлов для нового коммита + + +8. Закоммитила изменения тремя разными способами. +1) Добавила main.cpp в индекс, чтобы его изменения вошли в новый коммит, затем закоммитила его: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: добавлен ввод двух чисел' +[main 4bdf8cd] code: добавлен ввод двух чисел + 1 file changed, 3 insertions(+), 2 deletions(-) + +Это удобно, если нужно в коммит добавить изменения не всех, а только некоторых файлов. + +2) Добавила в программу вывод суммы двух чисел. +Добавила в индекс все изменения (к git add вместо имени файла добавляется -u). +После этого сделала коммит: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add -u + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'code: добавлен вывод суммы двух чисел' +[main a610fc4] code: добавлен вывод суммы двух чисел + 1 file changed, 1 insertion(+) + +Этот способ удобен, если в коммит нужно добавить много измененных файлов. +После git add -u можно добавить в индекс новые файлы. + +3) Добавила в программу вывод разности двух чисел. +Добавила все изменения и сделала коммит с помощью одной командв git commit -a -m: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -a -m 'code: добавлен вывод разности двух чисел' +[main 2b81c3f] code: добавлен вывод разности двух чисел + 1 file changed, 2 insertions(+), 1 deletion(-) + +Этот способ лучше всего применять, если в коммит должны войти только изменения уже существующих файлов. + + +9. Создала новый файл, в котором записана строка: /bin. +Затем сохранила его в каталоге project (он же корень репозитария) под именем .gitignore. +Сделано это для того, чтобы игнорировать каталог bin. +Через git status убедилась, что каталог больше не отображается. + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git status +On branch main +Untracked files: + (use "git add ..." to include in what will be committed) + .gitignore + obj/ + project.depend + +nothing added to commit but untracked files present (use "git add" to track) + +Аналогично с obj (в тот же файл .gitignore была добавлена строчка /obj): + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git status +On branch main +Untracked files: + (use "git add ..." to include in what will be committed) + .gitignore + project.depend + +nothing added to commit but untracked files present (use "git add" to track) + +Те же действия проделаны для project.depend: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/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) + +Добавила файл .gitignore и сделала коммит: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add .gitignore + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m 'git: создан файл для игнорирования файлов, производных от кода' +[main eb72fb4] git: создан файл для игнорирования файлов, производных от кода + 1 file changed, 3 insertions(+) + create mode 100644 .gitignore + + +10. Просмотрела журнал репозитария через git log с разными опциями. +1) git log (без опций): + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log +commit eb72fb489b792d9b6018099d15ab07c331caab9c (HEAD -> main) +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 19:20:58 2024 +0300 + + git: создан файл для игнорирования файлов, производных от кода + +commit 2b81c3fea87a4d5e613d210f4231239cfbb663a3 +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:46:26 2024 +0300 + + code: добавлен вывод разности двух чисел + +commit a610fc4ca0839fea9d4e53c1ad9cf5efea8915bf +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:38:56 2024 +0300 + + code: добавлен вывод суммы двух чисел + +commit 4bdf8cd2cf2a1ace7ba42eb3184d22fe0e11b180 +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:24:54 2024 +0300 + + code: добавлен ввод двух чисел + +commit d275a067c25de0eba5a6e3d8dc8ad7ce92418fd6 +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:19:03 2024 +0300 + + build: добавлен файл проекта + +commit 2ff127d35a64f19c996fa2eac0baa06dba18566a +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:16:29 2024 +0300 + + code: заготовка программы + +2) git log --stat (показывает файлы, измененные в коммитах): + +commit eb72fb489b792d9b6018099d15ab07c331caab9c (HEAD -> main) +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 19:20:58 2024 +0300 + + git: создан файл для игнорирования файлов, производных от кода + + .gitignore | 3 +++ + 1 file changed, 3 insertions(+) + +commit 2b81c3fea87a4d5e613d210f4231239cfbb663a3 +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:46:26 2024 +0300 + + code: добавлен вывод разности двух чисел + + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit a610fc4ca0839fea9d4e53c1ad9cf5efea8915bf +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:38:56 2024 +0300 + + code: добавлен вывод суммы двух чисел + + main.cpp | 1 + + 1 file changed, 1 insertion(+) + +commit 4bdf8cd2cf2a1ace7ba42eb3184d22fe0e11b180 +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:24:54 2024 +0300 + + code: добавлен ввод двух чисел + + main.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit d275a067c25de0eba5a6e3d8dc8ad7ce92418fd6 +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:19:03 2024 +0300 + + build: добавлен файл проекта + + project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 40 insertions(+) + +commit 2ff127d35a64f19c996fa2eac0baa06dba18566a +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:16:29 2024 +0300 + + code: заготовка программы + + main.cpp | 9 +++++++++ + 1 file changed, 9 insertions(+) + +Для последнего коммита показывается следующее: +хэш данного коммита; в скобках показано, что это последний на данный момент коммит ветки main; +имя и почта автора, сделавшого коммит; дата коммита; сообщение в коммите; +имя файла, через вертикальную черту количество добавленных строк в нем; +количество измененных файлов; общее количество добавленных строк. + +3) git log --oneline --decorate +(показывает коммит на одной строке (--oneline), а также ссылки, концы веток и тэги (--decorate)): + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate +eb72fb4 (HEAD -> main) git: создан файл для игнорирования файлов, производных от кода +2b81c3f code: добавлен вывод разности двух чисел +a610fc4 code: добавлен вывод суммы двух чисел +4bdf8cd code: добавлен ввод двух чисел +d275a06 build: добавлен файл проекта +2ff127d code: заготовка программы + +4) git log --oneline --decorate --all --graph +(то же самое, что и в пункте 3, но для всех веток (--all) и коммиты отображаются в виде дерева (--graph)): + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* eb72fb4 (HEAD -> main) git: создан файл для игнорирования файлов, производных от кода +* 2b81c3f code: добавлен вывод разности двух чисел +* a610fc4 code: добавлен вывод суммы двух чисел +* 4bdf8cd code: добавлен ввод двух чисел +* d275a06 build: добавлен файл проекта +* 2ff127d code: заготовка программы + +5) git log --grep "build:" (данная команда показывает коммиты по теме build): + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --grep "build:" +commit d275a067c25de0eba5a6e3d8dc8ad7ce92418fd6 +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:19:03 2024 +0300 + + build: добавлен файл проекта + +6) git log -- project.cbp (данная команда показывает коммиты, затрагивающие файл project.cbp): + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log -- project.cbp +commit d275a067c25de0eba5a6e3d8dc8ad7ce92418fd6 +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:19:03 2024 +0300 + + build: добавлен файл проекта + + +11. Просмотрела предпоследний коммит тремя способами: +1) git show HEAD~1 (от поледнего коммита отступить на 1) +2) git show main~1 (по имени ветви) +3) git show 2b81c3f (по хэшу данного коммита) + +Результат: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git show HEAD~1 +commit 2b81c3fea87a4d5e613d210f4231239cfbb663a3 +Author: Alice (DeviatovaMY) +Date: Sun Mar 3 18:46:26 2024 +0300 + + code: добавлен вывод разности двух чисел + +diff --git a/main.cpp b/main.cpp +index 7e12fbf..4688377 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,5 +7,6 @@ int main() + cout << "Enter A and B: "; + int a, b; + cin >> a >> b; +- cout << "A + B = " << a + b << "\n"; ++ cout << "A + B = " << a + b << "\n" ++ << "A - B = " << a - b << "\n"; + } + +Отображается хэш, автор, дата коммита, сообщение, код программы в main.cpp с удаленными (-) и добавленными (+) строками. + +12. Добавила в main.cpp вывод произведения двух чисел. Просмотрела изменения в рабочей копии через git diff: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git diff +diff --git a/main.cpp b/main.cpp +index 4688377..7991f2d 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,5 +8,6 @@ int main() + int a, b; + cin >> a >> b; + cout << "A + B = " << a + b << "\n" +- << "A - B = " << a - b << "\n"; ++ << "A - B = " << a - b << "\n" ++ << "A * B = " << a * b << "\n"; + } + +Была удалена строка с печатью разности. +Были добавлены измененная строка с печатью разности и печатью произведения двух чисел. + +Просмотрела изменения между самым первым коммитом и коммитом, добавляющим вывод разности двух чисел. +Для этого использовала два аргумента в виде хэша этих коммитов: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git diff 2ff127d 2b81c3f +diff --git a/main.cpp b/main.cpp +index b4392ec..4688377 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" ++ << "A - B = " << a - b << "\n"; + } + +Были удалены строки с печатью "Hello world!", добавлены строки вводом чисел и выводом суммы и разности. + + +13. Закоммитила вывод произведения двух чисел. Откатила этот коммит через git reset --hard HEAD~1 +(HEAD~1 - коммит, к которому нужно откатить состояние рабочей копии; +--hard означает, что рабочая копия должна быть приведена к состоянию данного коммита): + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -a -m 'code: добавлен вывод произведения двух чисел' +[main 8dc7c91] code: добавлен вывод произведения двух чисел + 1 file changed, 2 insertions(+), 1 deletion(-) + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git reset --hard HEAD~1 +HEAD is now at eb72fb4 git: создан файл для игнорирования файлов, производных от кода + +Внесла изменения в файл main.cpp и откатила этот файл к состоянию в последнем коммите через git checkout HEAD -- main.cpp: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git checkout HEAD -- main.cpp + +14. Отправила проект на сервер (), предварительно создав там репозитарий: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git remote add origin http://uit.mpei.ru/git/DeviatovaMY/cs-lab02.git + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push -u origin main +warning: auto-detection of host provider took too long (>2000ms) +warning: see https://aka.ms/gcm/autodetect for more information. +warning: auto-detection of host provider took too long (>2000ms) +warning: see https://aka.ms/gcm/autodetect for more information. +Enumerating objects: 18, done. +Counting objects: 100% (18/18), done. +Delta compression using up to 4 threads +Compressing objects: 100% (16/16), done. +Writing objects: 100% (18/18), 2.42 KiB | 77.00 KiB/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/DeviatovaMY/cs-lab02.git + * [new branch] main -> main +branch 'main' set up to track 'origin/main'. + +15. Начала работать от имени Боба. Через git clone получила проект с сервера: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob +$ git clone http://uit.mpei.ru/git/DeviatovaMY/cs-lab02.git project +Cloning into 'project'... +remote: Enumerating objects: 18, done. +remote: Counting objects: 100% (18/18), done. +remote: Compressing objects: 100% (16/16), done. +remote: Total 18 (delta 2), reused 0 (delta 0), pack-reused 0 +Receiving objects: 100% (18/18), done. +Resolving deltas: 100% (2/2), done. + +Перешла в каталог проекта и настроила Git через git config, чтобы коммиты были от имени Боба: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob +$ cd project + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git config user.name 'Bob (DeviatovaMY)' + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git config user.email 'DeviatovaMY@mpei.ru' + + +16. Добавила в программу вывод произведения чисел и закоммитила от имени Боба. +Убедилась, что он действительно сделан от имени Боба: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git commit -a -m 'code: добавлен вывод произведения двух чисел' +[main bf9c01e] code: добавлен вывод произведения двух чисел + 1 file changed, 2 insertions(+), 1 deletion(-) + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git show HEAD +commit bf9c01edae18cb5d72704cbd548e4ccd9896076d (HEAD -> main) +Author: Bob (DeviatovaMY) +Date: Sun Mar 31 15:30:41 2024 +0300 + + code: добавлен вывод произведения двух чисел + +diff --git a/main.cpp b/main.cpp +index 4688377..7991f2d 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -8,5 +8,6 @@ int main() + int a, b; + cin >> a >> b; + cout << "A + B = " << a + b << "\n" +- << "A - B = " << a - b << "\n"; ++ << "A - B = " << a - b << "\n" ++ << "A * B = " << a * b << "\n"; + } + +Отправила этот коммит на сервер: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +warning: auto-detection of host provider took too long (>2000ms) +warning: see https://aka.ms/gcm/autodetect for more information. +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 4 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 440 bytes | 110.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/DeviatovaMY/cs-lab02.git + eb72fb4..bf9c01e main -> main + + +17. Перешла "на машину Алисы", загрузила изменения с сервера (при этом рабочая копия Алисы не изменилась). +Просмотрела историю всех веток, видно, что main отстает от origin/main (на сервере). +Продвинула main к версии, скачанной с сервера, через git pull --ff-only: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ cd ~/Desktop/lab02/alice/project + +ASUS X507UF@LAPTOP-KB81OPAN 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), 420 bytes | 2.00 KiB/s, done. +From http://uit.mpei.ru/git/DeviatovaMY/cs-lab02 + eb72fb4..bf9c01e main -> origin/main + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* bf9c01e (origin/main) code: добавлен вывод произведения двух чисел +* eb72fb4 (HEAD -> main) git: создан файл для игнорирования файлов, производных от кода +* 2b81c3f code: добавлен вывод разности двух чисел +* a610fc4 code: добавлен вывод суммы двух чисел +* 4bdf8cd code: добавлен ввод двух чисел +* d275a06 build: добавлен файл проекта +* 2ff127d code: заготовка программы + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git pull --ff-only +Updating eb72fb4..bf9c01e +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + + +18. От лица Алисы добавила вывод частного двух чисел, сделала коммит и отправила изменения на сервер. +Проделала аналогичные шаги, что и в предыдущем пункте, поменяв роли Алисы и Боба местами: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -a -m 'code: добавлен вывод частного двух чисел' +[main 2c30e66] code: добавлен вывод частного двух чисел + 1 file changed, 2 insertions(+), 1 deletion(-) + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 4 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 436 bytes | 436.00 KiB/s, done. +Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0) +remote: . Processing 1 references +remote: Processed 1 references in total +To http://uit.mpei.ru/git/DeviatovaMY/cs-lab02.git + bf9c01e..2c30e66 main -> main + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ cd ~/Desktop/lab02/bob/project + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git fetch +remote: Enumerating objects: 5, done. +remote: Counting objects: 100% (5/5), done. +remote: Compressing objects: 100% (3/3), done. +remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +Unpacking objects: 100% (3/3), 416 bytes | 0 bytes/s, done. +From http://uit.mpei.ru/git/DeviatovaMY/cs-lab02 + bf9c01e..2c30e66 main -> origin/main + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* 2c30e66 (origin/main, origin/HEAD) code: добавлен вывод частного двух чисел +* bf9c01e (HEAD -> main) code: добавлен вывод произведения двух чисел +* eb72fb4 git: создан файл для игнорирования файлов, производных от кода +* 2b81c3f code: добавлен вывод разности двух чисел +* a610fc4 code: добавлен вывод суммы двух чисел +* 4bdf8cd code: добавлен ввод двух чисел +* d275a06 build: добавлен файл проекта +* 2ff127d code: заготовка программы + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git pull --ff-only +Updating bf9c01e..2c30e66 +Fast-forward + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + + +19. Добавила вывод максимума от лица Алисы, закоммитила и отправила на сервер. +Аналогично для Боба, но изменения не были приняты в силу того, что они были основаны не на последнем коммите. +Попробовала через git rebase переместить коммит Боба поверх последнего коммита на сервере, но изменения так же не были приняты. +В файле main.cpp возник конфликт, исправила его, учитывая и правки Боба, и правки Алисы. +Продолжила отправку коммита Боба на сервер через git rebase --continue, добавив перед этим файл с кодом в индекс. +Убедившись, что теперь коммит Боба поверх коммита Алисы, успешно отправила коммит Боба на сервер. + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ cd ~/Desktop/lab02/alice/project + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -a -m 'code: добавлен вывод максимума' +[main db458b4] code: добавлен вывод максимума + 1 file changed, 4 insertions(+) + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 4 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 456 bytes | 456.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/DeviatovaMY/cs-lab02.git + 2c30e66..db458b4 main -> main + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ cd ~/Desktop/lab02/bob/project + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git commit -a -m 'code: добавлен вывод минимума' +[main 39b60ec] code: добавлен вывод минимума + 1 file changed, 4 insertions(+) + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +To http://uit.mpei.ru/git/DeviatovaMY/cs-lab02.git + ! [rejected] main -> main (fetch first) +error: failed to push some refs to 'http://uit.mpei.ru/git/DeviatovaMY/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. + +ASUS X507UF@LAPTOP-KB81OPAN 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), 436 bytes | 2.00 KiB/s, done. +From http://uit.mpei.ru/git/DeviatovaMY/cs-lab02 + 2c30e66..db458b4 main -> origin/main + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* 39b60ec (HEAD -> main) code: добавлен вывод минимума +| * db458b4 (origin/main, origin/HEAD) code: добавлен вывод максимума +|/ +* 2c30e66 code: добавлен вывод частного двух чисел +* bf9c01e code: добавлен вывод произведения двух чисел +* eb72fb4 git: создан файл для игнорирования файлов, производных от кода +* 2b81c3f code: добавлен вывод разности двух чисел +* a610fc4 code: добавлен вывод суммы двух чисел +* 4bdf8cd code: добавлен ввод двух чисел +* d275a06 build: добавлен файл проекта +* 2ff127d code: заготовка программы + +ASUS X507UF@LAPTOP-KB81OPAN 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 39b60ec... 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 39b60ec... code: добавлен вывод минимума + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1) +$ git add main.cpp + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1) +$ git rebase --continue +[detached HEAD fbe0f36] code: добавлен вывод минимума + 1 file changed, 4 insertions(+), 2 deletions(-) +Successfully rebased and updated refs/heads/main. + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git log --oneline --decorate --all --graph +* fbe0f36 (HEAD -> main) code: добавлен вывод минимума +* db458b4 (origin/main, origin/HEAD) code: добавлен вывод максимума +* 2c30e66 code: добавлен вывод частного двух чисел +* bf9c01e code: добавлен вывод произведения двух чисел +* eb72fb4 git: создан файл для игнорирования файлов, производных от кода +* 2b81c3f code: добавлен вывод разности двух чисел +* a610fc4 code: добавлен вывод суммы двух чисел +* 4bdf8cd code: добавлен ввод двух чисел +* d275a06 build: добавлен файл проекта +* 2ff127d code: заготовка программы + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ git push +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 4 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 425 bytes | 425.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/DeviatovaMY/cs-lab02.git + db458b4..fbe0f36 main -> main + + +20. Перешла "на машину Алисы", создала новую ветку double и переключилась на нее. +Изменила тип переменных с int на double и сделала коммит. + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/bob/project (main) +$ cd ~/Desktop/lab02/alice/project + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git branch double + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git checkout double +Switched to branch 'double' + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (double) +$ git commit -a -m 'code: изменен тип переменных на double' +[double 3e220e1] code: изменен тип переменных на double + 1 file changed, 1 insertion(+), 1 deletion(-) + +Переключилась на ветку main, синхронизировала ее с изменениями на сервере, просмотрела историю всех веток: + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (double) +$ git checkout main +Switched to branch 'main' +Your branch is up to date with 'origin/main'. + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git pull --ff-only +Updating db458b4..fbe0f36 +Fast-forward + main.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 3e220e1 (double) code: изменен тип переменных на double +| * fbe0f36 (HEAD -> main, origin/main) code: добавлен вывод минимума +|/ +* db458b4 code: добавлен вывод максимума +* 2c30e66 code: добавлен вывод частного двух чисел +* bf9c01e code: добавлен вывод произведения двух чисел +* eb72fb4 git: создан файл для игнорирования файлов, производных от кода +* 2b81c3f code: добавлен вывод разности двух чисел +* a610fc4 code: добавлен вывод суммы двух чисел +* 4bdf8cd code: добавлен ввод двух чисел +* d275a06 build: добавлен файл проекта +* 2ff127d code: заготовка программы + +Видно, что после коммита с печатью максимума происходит разветвление, в коммите Алисы в скобках указана ветка double. +После этого слила double в main (т.к. в текстовом редакторе оставила пустое сообщение, отдельной командой закоммитила слияние веток). +Затем отправила все изменения на сервер и еще раз просмотрела историю веток. + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git merge double +Auto-merging main.cpp +error: Empty commit message. +Not committing merge; use 'git commit' to complete the merge. + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main|MERGING) +$ git commit +[main 01aedfb] git: ветка double слита в main + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git push +Enumerating objects: 10, done. +Counting objects: 100% (10/10), done. +Delta compression using up to 4 threads +Compressing objects: 100% (6/6), done. +Writing objects: 100% (6/6), 803 bytes | 803.00 KiB/s, done. +Total 6 (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/DeviatovaMY/cs-lab02.git + fbe0f36..01aedfb main -> main + +ASUS X507UF@LAPTOP-KB81OPAN MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* 01aedfb (HEAD -> main, origin/main) git: ветка double слита в main +|\ +| * 3e220e1 (double) code: изменен тип переменных на double +* | fbe0f36 code: добавлен вывод минимума +|/ +* db458b4 code: добавлен вывод максимума +* 2c30e66 code: добавлен вывод частного двух чисел +* bf9c01e code: добавлен вывод произведения двух чисел +* eb72fb4 git: создан файл для игнорирования файлов, производных от кода +* 2b81c3f code: добавлен вывод разности двух чисел +* a610fc4 code: добавлен вывод суммы двух чисел +* 4bdf8cd code: добавлен ввод двух чисел +* d275a06 build: добавлен файл проекта +* 2ff127d code: заготовка программы + +Коммиты fbe0f36 и 3e220e1 находятся на разных ветках (main и double соответственно). +Последний коммит является результатом слияния этих веток \ No newline at end of file