Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
1332 строки
58 KiB
Plaintext
1332 строки
58 KiB
Plaintext
Отчет по лабораторной работе № 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 <file>..." 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 <file>..." 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 <file>..." to unstage)
|
|
new file: main.cpp
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." 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 <file>..." to unstage)
|
|
new file: project.cbp
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." 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 <file>..." to update what will be committed)
|
|
(use "git restore <file>..." to discard changes in working directory)
|
|
modified: main.cpp
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
bin/
|
|
obj/
|
|
|
|
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 <file>..." 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 <file>..." 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) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 18:02:55 2025 +0300
|
|
|
|
git: добавлено игнорирование файлов
|
|
|
|
commit cb760ee38df738c68870b685109bbcd397d5c870
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:59:19 2025 +0300
|
|
|
|
code: добавлено действие вывода разности двух чисел
|
|
|
|
commit 7ee3c48bcd5b2889157093fd0f08d0793fdb6072
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:55:34 2025 +0300
|
|
|
|
code: добавлено действие вывода суммы двух чисел
|
|
|
|
commit 76284a208e0d98d287a2fad9699306ad8bc4b57a
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:52:58 2025 +0300
|
|
|
|
code: добавлено действие ввода двух чисел
|
|
|
|
commit a1c6dc2389809e098db838bb420275491ccd270a
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:48:16 2025 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
commit 9dec9752d1b48369cc0ebb2db92febcb89956175
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 18:02:55 2025 +0300
|
|
|
|
git: добавлено игнорирование файлов
|
|
|
|
.gitignore | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
commit cb760ee38df738c68870b685109bbcd397d5c870
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:55:34 2025 +0300
|
|
|
|
code: добавлено действие вывода суммы двух чисел
|
|
|
|
main.cpp | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
commit 76284a208e0d98d287a2fad9699306ad8bc4b57a
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 18:02:55 2025 +0300
|
|
|
|
git: добавлено игнорирование файлов
|
|
|
|
.gitignore | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
commit cb760ee38df738c68870b685109bbcd397d5c870
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:55:34 2025 +0300
|
|
|
|
code: добавлено действие вывода суммы двух чисел
|
|
|
|
main.cpp | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
commit 76284a208e0d98d287a2fad9699306ad8bc4b57a
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:48:16 2025 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 40 insertions(+)
|
|
|
|
commit 9dec9752d1b48369cc0ebb2db92febcb89956175
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:59:19 2025 +0300
|
|
|
|
code: добавлено действие вывода разности двух чисел
|
|
|
|
commit 7ee3c48bcd5b2889157093fd0f08d0793fdb6072
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:55:34 2025 +0300
|
|
|
|
code: добавлено действие вывода суммы двух чисел
|
|
|
|
commit 76284a208e0d98d287a2fad9699306ad8bc4b57a
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:52:58 2025 +0300
|
|
|
|
code: добавлено действие ввода двух чисел
|
|
|
|
commit 9dec9752d1b48369cc0ebb2db92febcb89956175
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:59:19 2025 +0300
|
|
|
|
code: добавлено действие вывода разности двух чисел
|
|
|
|
commit 7ee3c48bcd5b2889157093fd0f08d0793fdb6072
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:55:34 2025 +0300
|
|
|
|
code: добавлено действие вывода суммы двух чисел
|
|
|
|
commit 76284a208e0d98d287a2fad9699306ad8bc4b57a
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
Date: Sat Mar 22 17:52:58 2025 +0300
|
|
|
|
code: добавлено действие ввода двух чисел
|
|
|
|
commit 9dec9752d1b48369cc0ebb2db92febcb89956175
|
|
Author: Alice (LatyshevGI) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
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) <LatyshevGI@mpei.ru>
|
|
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 @@
|
|
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
|
+<CodeBlocks_project_file>
|
|
+ <FileVersion major="1" minor="6" />
|
|
+ <Project>
|
|
+ <Option title="project" />
|
|
+ <Option pch_mode="2" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Build>
|
|
+ <Target title="Debug">
|
|
+ <Option output="bin/Debug/project" prefix_auto="1" extension_auto="1" />
|
|
+ <Option object_output="obj/Debug/" />
|
|
+ <Option type="1" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Compiler>
|
|
+ <Add option="-g" />
|
|
+ </Compiler>
|
|
+ </Target>
|
|
+ <Target title="Release">
|
|
+ <Option output="bin/Release/project" prefix_auto="1" extension_auto="1" />
|
|
+ <Option object_output="obj/Release/" />
|
|
+ <Option type="1" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Compiler>
|
|
+ <Add option="-O2" />
|
|
+ </Compiler>
|
|
+ <Linker>
|
|
+ <Add option="-s" />
|
|
+ </Linker>
|
|
+ </Target>
|
|
+ </Build>
|
|
+ <Compiler>
|
|
+ <Add option="-Wall" />
|
|
+ <Add option="-fexceptions" />
|
|
+ </Compiler>
|
|
+ <Unit filename="main.cpp" />
|
|
+ <Extensions>
|
|
+ <lib_finder disable_auto="1" />
|
|
+ </Extensions>
|
|
+ </Project>
|
|
+</CodeBlocks_project_file>
|
|
|
|
--Займемся проверкой отката изменений. Проверим работу команды "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 <conflicted_files>", 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: заготовка программы
|
|
|
|
--Всё получилось!
|