Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

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