Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
1284 строки
55 KiB
Plaintext
1284 строки
55 KiB
Plaintext
Отчет по лабораторной работе № 2 "Система контроля версий Git"
|
|
|
|
Выполнил: Евдоченко Н.В.
|
|
Группа: А-03-24
|
|
Проверил:
|
|
|
|
Примечание: работа выполнялась на Windows.
|
|
|
|
--Создала на рабочем столе каталог lab02 и запустила в нем Git Bash, приглашение:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02
|
|
$
|
|
|
|
--Просмотрела файлы в рабочем каталоге, это можно сделать командой "ls" --- пусто:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02
|
|
$ ls
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02
|
|
$
|
|
|
|
--Создала каталоги Алисы и Боба, создала каталог "project",
|
|
изучила команду "cd" в процессе:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02
|
|
$ mkdir alice
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02
|
|
$ mkdir bob
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02
|
|
$ cd alice
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice
|
|
$ mkdir project
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project
|
|
$ cd ..
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
|
|
--Инициализировала репозитарий:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project
|
|
$ git init
|
|
Initialized empty Git repository in C:/Users/Natasha/Desktop/lab02/alice/project/.git/
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git branch -m main
|
|
|
|
--Просмотрела еще раз файлы в рабочем каталоге:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ ls -A
|
|
.git/
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git config user.name 'Alice(EvdochenkoNV)'
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git config user.email 'YevdochenkoNV@mpei.ru'
|
|
|
|
У меня имя ветки по умолчанию не настроено.
|
|
Git создал ветку под названием master, что видно в приглашении терминала.
|
|
Я приняла решение поменять имя ветки на "main".
|
|
|
|
--Создала проект в CodeBlocks, проверила состояние копии:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/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)
|
|
|
|
--Скомпилировала проект, проверила состояние актуальной копии:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/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
|
|
project.depend
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
--Как видно, пока что ни один из файлов не "в индексе", но предоставлены варианты для этого. Подсказка предлагает ввести файлы в набор изменений.
|
|
|
|
--Так и сделаю. Добавлю main.cpp в "индекс", проверю добавился ли он, и закоммичу заготовку:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
--Добавила файл main.cpp в индекс.
|
|
|
|
--Теперь просмотрю его состояние:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/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
|
|
project.depend
|
|
|
|
--Как видно, Git Bash вывел сообщение о том, что теперь добавлен "новый" файл - main.cpp. Закоммичу его:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: заготовка программы'
|
|
[main (root-commit) 52f11a8] code: заготовка программы
|
|
1 file changed, 9 insertions(+)
|
|
create mode 100644 main.cpp
|
|
|
|
--Также добавлю projecet.cbp в индекс и закоммичу этот проект:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add project.cbp
|
|
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/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. Теперь закоммичу его:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'build: добавлен файл проекта'
|
|
[main 79e3482] build: добавлен файл проекта
|
|
1 file changed, 40 insertions(+)
|
|
create mode 100644 project.cbp
|
|
|
|
--Внесла изменения в main.cpp и теперь проверю их наличие в Git Bash:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/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/
|
|
project.depend
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
--Git Bash показывает, что теперь есть измененный несохраненный файл, modified, исправлю это. Замечу, что при первом вводе команды git status, выводилось, что main.cpp - это новый файл, а теперь - модифицированный. Добавлю в индекс main.cpp тремя различными способами, закоммичу:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m "code: добавлено действие ввода двух чисел"
|
|
[main 6f2000c] code: добавлено действие ввода двух чисел
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
--Пока тестирую разные команды, добавлю в main.cpp вывод суммы двух чисел:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add -u
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m "code: добавлено действие вывода суммы двух чисел"
|
|
[main 1cbb073] code: добавлено действие вывода суммы двух чисел
|
|
1 file changed, 2 insertions(+)
|
|
|
|
--А также добавлю вывод разности двух чисел:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -a -m "code: добавлено действие вывода разности двух чисел"
|
|
[main 34797a6] code: добавлено действие вывода разности двух чисел
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
--Проверю еще раз, прошли ли изменения. Убедилась, что, да.
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
bin/
|
|
obj/
|
|
project.depend
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
--Вижу разные "лишние" файлы, которые можно скрыть. Для этого добавлю в проект project.cbp пустой файл .gitignore. Внесу в него наименование bin/:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
.gitignore
|
|
obj/
|
|
project.depend
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
--Дополню файл .gitignore еще двумя наименованиями - obj/ и project.depend, а затем закоммичу файл .gitignore:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/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)
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add .gitignore
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'git: добавлено игнорирование файлов'
|
|
[main 3ef2450] git: добавлено игнорирование файлов
|
|
1 file changed, 3 insertions(+)
|
|
create mode 100644 .gitignore
|
|
|
|
--Теперь просмотрю историю коммитов при помощи команды "log":
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log
|
|
commit 3ef2450bd8d509e3f608f1ed3fe5f6bc59e22a78 (HEAD -> main)
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:37:33 2025 +0300
|
|
|
|
git: добавлено игнорирование файлов
|
|
|
|
commit 34797a6e5467781572e5b9e76c21f14a6b36713b
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:29:56 2025 +0300
|
|
|
|
code: добавлено действие вывода разности двух чисел
|
|
|
|
commit 1cbb0738cc1b5b29d1ce4dd908d6ff555ba2c49d
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:27:34 2025 +0300
|
|
|
|
code: добавлено действие вывода суммы двух чисел
|
|
|
|
commit 6f2000c931d6bc7fae6e21e8df257339774db74f
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:23:33 2025 +0300
|
|
|
|
code: добавлено действие ввода двух чисел
|
|
|
|
commit 79e3482c4ee642ac0d274784cca39275adbdc872
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:20:54 2025 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
commit 52f11a8875ba32099d7c99cefe2b416f2bbec971
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:20:04 2025 +0300
|
|
|
|
code: заготовка программы
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --stat
|
|
commit 3ef2450bd8d509e3f608f1ed3fe5f6bc59e22a78 (HEAD -> main)
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:37:33 2025 +0300
|
|
|
|
git: добавлено игнорирование файлов
|
|
|
|
.gitignore | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
commit 34797a6e5467781572e5b9e76c21f14a6b36713b
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:29:56 2025 +0300
|
|
|
|
code: добавлено действие вывода разности двух чисел
|
|
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
commit 1cbb0738cc1b5b29d1ce4dd908d6ff555ba2c49d
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:27:34 2025 +0300
|
|
|
|
code: добавлено действие вывода суммы двух чисел
|
|
|
|
main.cpp | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
commit 6f2000c931d6bc7fae6e21e8df257339774db74f
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:23:33 2025 +0300
|
|
|
|
code: добавлено действие ввода двух чисел
|
|
|
|
main.cpp | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
commit 79e3482c4ee642ac0d274784cca39275adbdc872
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:20:54 2025 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 40 insertions(+)
|
|
|
|
commit 52f11a8875ba32099d7c99cefe2b416f2bbec971
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:20:04 2025 +0300
|
|
|
|
code: заготовка программы
|
|
|
|
main.cpp | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
|
|
--Ввела команду git log --stat. Сначала выведется хэш последнего коммита, затем его автор - Alice, дата, наименование коммита и какие строки в каком файле были изменены/добавлены. Потом уточняется, сколько файлов было изменено и сколько в них изменений.
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate
|
|
3ef2450 (HEAD -> main) git: добавлено игнорирование файлов
|
|
34797a6 code: добавлено действие вывода разности двух чисел
|
|
1cbb073 code: добавлено действие вывода суммы двух чисел
|
|
6f2000c code: добавлено действие ввода двух чисел
|
|
79e3482 build: добавлен файл проекта
|
|
52f11a8 code: заготовка программы
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 3ef2450 (HEAD -> main) git: добавлено игнорирование файлов
|
|
* 34797a6 code: добавлено действие вывода разности двух чисел
|
|
* 1cbb073 code: добавлено действие вывода суммы двух чисел
|
|
* 6f2000c code: добавлено действие ввода двух чисел
|
|
* 79e3482 build: добавлен файл проекта
|
|
* 52f11a8 code: заготовка программы
|
|
|
|
--Использую команду git log -- main.cpp, которая показывает затрагивающие main.cpp:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log -- main.cpp
|
|
commit 34797a6e5467781572e5b9e76c21f14a6b36713b
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:29:56 2025 +0300
|
|
|
|
code: добавлено действие вывода разности двух чисел
|
|
|
|
commit 1cbb0738cc1b5b29d1ce4dd908d6ff555ba2c49d
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:27:34 2025 +0300
|
|
|
|
code: добавлено действие вывода суммы двух чисел
|
|
|
|
commit 6f2000c931d6bc7fae6e21e8df257339774db74f
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:23:33 2025 +0300
|
|
|
|
code: добавлено действие ввода двух чисел
|
|
|
|
commit 52f11a8875ba32099d7c99cefe2b416f2bbec971
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:20:04 2025 +0300
|
|
|
|
code: заготовка программы
|
|
|
|
|
|
--Использую команду git log --grep "code:", которая показывает коммиты с code: в сообщении.
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --grep "code:"
|
|
commit 34797a6e5467781572e5b9e76c21f14a6b36713b
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:29:56 2025 +0300
|
|
|
|
code: добавлено действие вывода разности двух чисел
|
|
|
|
commit 1cbb0738cc1b5b29d1ce4dd908d6ff555ba2c49d
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:27:34 2025 +0300
|
|
|
|
code: добавлено действие вывода суммы двух чисел
|
|
|
|
commit 6f2000c931d6bc7fae6e21e8df257339774db74f
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:23:33 2025 +0300
|
|
|
|
code: добавлено действие ввода двух чисел
|
|
|
|
commit 52f11a8875ba32099d7c99cefe2b416f2bbec971
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:20:04 2025 +0300
|
|
|
|
code: заготовка программы
|
|
|
|
--Найду сначала коммиты по теме build:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --grep "build:"
|
|
commit 79e3482c4ee642ac0d274784cca39275adbdc872
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:20:54 2025 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
--Теперь просмотрю коммиты, затрагивающие project.cbp:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log -- project.cbp
|
|
commit 79e3482c4ee642ac0d274784cca39275adbdc872
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:20:54 2025 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
--Просмотрю содержимое отдельных коммитов разными командами. Сначала, сделаем это, указав версию. В нашем случае - актуальную - HEAD:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show HEAD
|
|
commit 3ef2450bd8d509e3f608f1ed3fe5f6bc59e22a78 (HEAD -> main)
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:37:33 2025 +0300
|
|
|
|
git: добавлено игнорирование файлов
|
|
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..aecc882
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,3 @@
|
|
+/bin
|
|
+/obj
|
|
+/project.depend
|
|
|
|
--Посмотрю последний коммит по имени ветви:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show main
|
|
commit 3ef2450bd8d509e3f608f1ed3fe5f6bc59e22a78 (HEAD -> main)
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:37:33 2025 +0300
|
|
|
|
git: добавлено игнорирование файлов
|
|
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..aecc882
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,3 @@
|
|
+/bin
|
|
+/obj
|
|
+/project.depend
|
|
|
|
--Посмотрю последний коммит по хэшу. Примечательно, что у хэша существует укороченная версия, и если ее ввести в Git Bash, то он поймет, к какой версии я пытаюсь получить log.
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show 3ef2450
|
|
commit 3ef2450bd8d509e3f608f1ed3fe5f6bc59e22a78 (HEAD -> main)
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:37:33 2025 +0300
|
|
|
|
git: добавлено игнорирование файлов
|
|
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..aecc882
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,3 @@
|
|
+/bin
|
|
+/obj
|
|
+/project.depend
|
|
|
|
--Посмотрю теперь предпоследний коммит тремя разными способами. Сначала укажу HEAD~1:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show HEAD~1
|
|
commit 34797a6e5467781572e5b9e76c21f14a6b36713b
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:29:56 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:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show main~1
|
|
commit 34797a6e5467781572e5b9e76c21f14a6b36713b
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:29:56 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;
|
|
}
|
|
|
|
--Посмотрю предпоследний коммит по хэшу:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show 34797a6
|
|
commit 34797a6e5467781572e5b9e76c21f14a6b36713b
|
|
Author: Alice(EvdochenkoNV) <YevdochenkoNV>
|
|
Date: Sat Mar 29 17:29:56 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;
|
|
}
|
|
|
|
--Просмотрела предпоследний коммит. Теперь просмотрю изменения при помощи команды git diff:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/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 включает показ изменений от указанного коммита до последнего, включая изменения в рабочей копии:
|
|
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff HEAD~2
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..aecc882
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,3 @@
|
|
+/bin
|
|
+/obj
|
|
+/project.depend
|
|
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;
|
|
}
|
|
|
|
--С двумя аргументами команда показывает разницу между указанными коммитами, например, так можно исключить изменения в рабочей копии из вывода предыдущей команды:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff HEAD~2 HEAD
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..aecc882
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,3 @@
|
|
+/bin
|
|
+/obj
|
|
+/project.depend
|
|
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". Теперь просмотрю изменения между самым первым коммитом и коммитом, добавляющим вывод разности:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/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 и закоммичу их:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -a -m 'code: добавлено действие вывода произведения двух чисел'
|
|
[main 460f3ce] code: добавлено действие вывода произведения двух чисел
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
--Теперь откачу изменения. Можно сделать двумя разными способами:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git reset --hard HEAD~1
|
|
HEAD is now at 3ef2450 git: добавлено игнорирование файлов
|
|
|
|
--Здесь HEAD~1 указывает на коммит, к которому нужно откатить состояние рабочей копии, а ключ --hard означает, что нужно привести рабочую копию точно к состоянию выбранного коммита.
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git checkout HEAD -- main.cpp
|
|
|
|
--А в случае выше при помощи команды "checkout <argument>" можно переключиться на последнюю закоммиченную версию - HEAD и указать, для какого файла.
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ ssh-keygen
|
|
Generating public/private ed25519 key pair.
|
|
Enter file in which to save the key (/c/Users/Natasha/.ssh/id_ed25519):
|
|
/c/Users/Natasha/.ssh/id_ed25519 already exists.
|
|
Overwrite (y/n)? y
|
|
Enter passphrase for "/c/Users/Natasha/.ssh/id_ed25519" (empty for no passphrase):
|
|
Enter same passphrase again:
|
|
Your identification has been saved in /c/Users/Natasha/.ssh/id_ed25519
|
|
Your public key has been saved in /c/Users/Natasha/.ssh/id_ed25519.pub
|
|
The key fingerprint is:
|
|
SHA256:u5/HXXcX5eCkIaQ8izabibBBbzsegq9FokpR0Ehd0kM Natasha@DESKTOP-VOTQ4U6
|
|
The key's randomart image is:
|
|
+--[ED25519 256]--+
|
|
|.o+.+E .. |
|
|
| ..o.o . .. . o .|
|
|
| .. . + . = o.|
|
|
| ... . o . ...|
|
|
|..+ o + S .|
|
|
|.+.= + = . =|
|
|
|o.+ = + . . . .+|
|
|
|oo o o . .o . |
|
|
|o.. . ..o. |
|
|
+----[SHA256]-----+
|
|
|
|
--Создала пару ключей: открытый, чтобы другие могли просматривать коммиты, и закрытый, чтобы был доступ к редактированию коммитов.
|
|
|
|
--Вводить пароль каждый раз, когда используется ключ, неудобно. Поэтому использую программу-агента, которая работает в фоне и предоставляет ключи GITу. Пароль требуется тогда вводить один раз - при загрузке ключа в агент. Запусчу агента:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ eval $(ssh-agent -s)
|
|
Agent pid 701
|
|
|
|
--Загружу для агента закрытый ключ:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ ssh-add
|
|
Enter passphrase for /c/Users/Natasha/.ssh/id_ed25519:
|
|
Identity added: /c/Users/Natasha/.ssh/id_ed25519 (Natasha@DESKTOP-VOTQ4U6)
|
|
|
|
--Отображу закрытый ключ:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ cat ~/.ssh/id_ed25519.pub
|
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIChF7spv5pQsI0YGbxWHtkSoKzeIlgUaPT2Lkv8TUj9m Natasha@DESKTOP-VOTQ4U6
|
|
|
|
--Выполню команды, необходимые для отправки проекта на сервер:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ touch README.md
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git init
|
|
Reinitialized existing Git repository in C:/Users/Natasha/Desktop/lab02/alice/project/.git/
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git checkout -b main
|
|
fatal: a branch named 'main' already exists
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add README.md
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m "first commit"
|
|
On branch main
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git remote add origin git@uit.mpei.ru:EvdochenkoNV/cs-lab02.git
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push origin main
|
|
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.63 KiB | 1.32 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 uit.mpei.ru:EvdochenkoNV/cs-lab02.git
|
|
* [new branch] main -> main
|
|
|
|
______Машина Боба
|
|
|
|
--К разработке присоединился Боб, клонирую для него проект на его "машину":
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob
|
|
$ git clone git@uit.mpei.ru:EvdochenkoNV/cs-lab02.git project
|
|
Cloning into 'project'...
|
|
Enter passphrase for key '/c/Users/Natasha/.ssh/id_ed25519':
|
|
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.
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob
|
|
$ cd project
|
|
|
|
--Так же как и для Алисы настрою конфиг Боба:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git init
|
|
Reinitialized existing Git repository in C:/Users/Natasha/Desktop/lab02/bob/project/.git/
|
|
|
|
--Инициализировала.
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git config user.name 'Bob (EvdochenkoNV)'
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git config user.email 'YevdochenkoNV@mpei.ru'
|
|
|
|
--Добавила данные разработчика.
|
|
|
|
--Добавлю печать произведения чисел и сделаю коммит:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git commit -a -m 'code: добавлено действие вывода произведения двух чисел'
|
|
[main a732f9b] code: добавлено действие вывода произведения двух чисел
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
--Теперь загружу проект на сервер:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/Natasha/.ssh/id_ed25519':
|
|
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), 394 bytes | 394.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 uit.mpei.ru:EvdochenkoNV/cs-lab02.git
|
|
575ec3b..a732f9b main -> main
|
|
|
|
|
|
______Машина Алисы
|
|
|
|
--Получу данные на "машине" Алисы:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git fetch
|
|
remote: Enumerating objects: 5, done.
|
|
remote: Counting objects: 100% (5/5), done.
|
|
remote: Compressing objects: 100% (3/3), done.
|
|
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
|
|
Unpacking objects: 100% (3/3), 374 bytes | 20.00 KiB/s, done.
|
|
From uit.mpei.ru:EvdochenkoNV/cs-lab02
|
|
575ec3b..a732f9b main -> origin/main
|
|
|
|
--Проверю вступили ли изменения в силу:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* a732f9b (origin/main, origin/HEAD) code: добавлено действие вывода произведения двух чисел
|
|
* 575ec3b (HEAD -> main) first commit
|
|
* 3ef2450 git: добавлено игнорирование файлов
|
|
* 34797a6 code: добавлено действие вывода разности двух чисел
|
|
* 1cbb073 code: добавлено действие вывода суммы двух чисел
|
|
* 6f2000c code: добавлено действие ввода двух чисел
|
|
* 79e3482 build: добавлен файл проекта
|
|
* 52f11a8 code: заготовка программы
|
|
|
|
--Как видно, ветка main отстает на один коммит от версии ветки main из удаленного репозитария под названием origin, то есть на сервере. По этой причине продвину ветку main к скачанной версии:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git pull origin main
|
|
From uit.mpei.ru:EvdochenkoNV/cs-lab02
|
|
* branch main -> FETCH_HEAD
|
|
Updating 575ec3b..a732f9b
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
--Проверю, сработало ли "продвижение" ветки:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* a732f9b (HEAD -> main, origin/main, origin/HEAD) code: добавлено действие вывода произведения двух чисел
|
|
* 575ec3b first commit
|
|
* 3ef2450 git: добавлено игнорирование файлов
|
|
* 34797a6 code: добавлено действие вывода разности двух чисел
|
|
* 1cbb073 code: добавлено действие вывода суммы двух чисел
|
|
* 6f2000c code: добавлено действие ввода двух чисел
|
|
* 79e3482 build: добавлен файл проекта
|
|
* 52f11a8 code: заготовка программы
|
|
|
|
|
|
--Добавлю в программу печать деления, сделаю коммит и отправлю его на сервер:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -a -m 'code: добавлено действие вывода деления двух чисел'
|
|
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
|
|
[main 03658ad] code: добавлено действие вывода деления двух чисел
|
|
2 files changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push origin main
|
|
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), 542 bytes | 542.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 uit.mpei.ru:EvdochenkoNV/cs-lab02.git
|
|
a732f9b..03658ad main -> main
|
|
|
|
--Загрузила на сервер коммит.
|
|
|
|
______Машина Боба
|
|
|
|
--Получу изменения из сервера на "машину" Боба.
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/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), 522 bytes | 29.00 KiB/s, done.
|
|
From uit.mpei.ru:EvdochenkoNV/cs-lab02
|
|
a732f9b..03658ad main -> origin/main
|
|
|
|
--Проверю вступили ли изменения в силу:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 03658ad (origin/main, origin/HEAD) code: добавлено действие вывода деления двух чисел
|
|
* a732f9b (HEAD -> main) code: добавлено действие вывода произведения двух чисел
|
|
* 575ec3b first commit
|
|
* 3ef2450 git: добавлено игнорирование файлов
|
|
* 34797a6 code: добавлено действие вывода разности двух чисел
|
|
* 1cbb073 code: добавлено действие вывода суммы двух чисел
|
|
* 6f2000c code: добавлено действие ввода двух чисел
|
|
* 79e3482 build: добавлен файл проекта
|
|
* 52f11a8 code: заготовка программы
|
|
|
|
--Как видно, ветка main опять отстает на один коммит от версии ветки main из удаленного репозитария под названием origin, то есть на сервере. По этой причине продвину ветку main к скачанной версии:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git pull --ff-only
|
|
Updating a732f9b..03658ad
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
project.cbp | 1 +
|
|
2 files changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
--Проверю, сработало ли "продвижение" ветки:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 03658ad (HEAD -> main, origin/main, origin/HEAD) code: добавлено действие вывода деления двух чисел
|
|
* a732f9b code: добавлено действие вывода произведения двух чисел
|
|
* 575ec3b first commit
|
|
* 3ef2450 git: добавлено игнорирование файлов
|
|
* 34797a6 code: добавлено действие вывода разности двух чисел
|
|
* 1cbb073 code: добавлено действие вывода суммы двух чисел
|
|
* 6f2000c code: добавлено действие ввода двух чисел
|
|
* 79e3482 build: добавлен файл проекта
|
|
* 52f11a8 code: заготовка программы
|
|
|
|
______Машина Алисы
|
|
|
|
--Добавлю поиск максимума чисел и закоммичу:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -a -m 'code: добавлено действие вывода максимума из двух чисел'
|
|
[main 0a35430] code: добавлено действие вывода максимума из двух чисел
|
|
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
|
|
--Загружу данные на сервер:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push origin main
|
|
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), 455 bytes | 455.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 uit.mpei.ru:EvdochenkoNV/cs-lab02.git
|
|
03658ad..0a35430 main -> main
|
|
|
|
______Машина Боба
|
|
|
|
--Добавлю поиск минимума чисел и закоммичу:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git commit -a -m 'code: добавлено действие вывода минимума из двух чисел'
|
|
[main 516b168] code: добавлено действие вывода минимума из двух чисел
|
|
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
|
|
-Загружу обновления на сервер:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push origin main
|
|
To uit.mpei.ru:EvdochenkoNV/cs-lab02.git
|
|
! [rejected] main -> main (non-fast-forward)
|
|
error: failed to push some refs to 'uit.mpei.ru:EvdochenkoNV/cs-lab02.git'
|
|
hint: Updates were rejected because the tip of your current branch is behind
|
|
hint: its remote counterpart. If you want to integrate the remote changes,
|
|
hint: use 'git pull' before pushing again.
|
|
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
|
|
|
|
--Однако, так как Боб не обновлял свой локальный репозитарий, то выдастся ошибка, что коммит Боба не последний. По этой причине загружу на локальный репозитарий нужные коммита с сервера:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git fetch
|
|
From uit.mpei.ru:EvdochenkoNV/cs-lab02
|
|
* [new branch] main -> origin/main
|
|
|
|
--Просмотрю теперь историю веток:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 516b168 (HEAD -> main) code: добавлено действие вывода минимума из двух чисел
|
|
| * 0a35430 (origin/main, origin/HEAD) code: добавлено действие вывода максимума из двух чисел
|
|
|/
|
|
* 03658ad code: добавлено действие вывода деления двух чисел
|
|
* a732f9b code: добавлено действие вывода произведения двух чисел
|
|
* 575ec3b first commit
|
|
* 3ef2450 git: добавлено игнорирование файлов
|
|
* 34797a6 code: добавлено действие вывода разности двух чисел
|
|
* 1cbb073 code: добавлено действие вывода суммы двух чисел
|
|
* 6f2000c code: добавлено действие ввода двух чисел
|
|
* 79e3482 build: добавлен файл проекта
|
|
* 52f11a8 code: заготовка программы
|
|
|
|
--Как видно, произошло разветвление. Необходимо переместить коммит Боба поверх коммита Алисы с помощью команды "git rebase origin/main":
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git rebase origin/main
|
|
Auto-merging main.cpp
|
|
CONFLICT (content): Merge conflict in main.cpp
|
|
error: could not apply 516b168... 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 516b168... code: добавлено действие вывода минимума из двух чисел
|
|
|
|
--Ожидаемо, выдало ошибку из-за несоответствия версий. Исправим это и исправим код так, как нам надо.
|
|
|
|
--Теперь продолжим наше "перемещение" ветки:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
|
|
$ git add main.cpp
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
|
|
$ git rebase --continue
|
|
Successfully rebased and updated refs/heads/main.
|
|
|
|
--Проверю состояние хранилища:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 0f4a19d (HEAD -> main) code: добавлено действие вывода минимума из двух чисел
|
|
* 0a35430 (origin/main, origin/HEAD) code: добавлено действие вывода максимума из двух чисел
|
|
* 03658ad code: добавлено действие вывода деления двух чисел
|
|
* a732f9b code: добавлено действие вывода произведения двух чисел
|
|
* 575ec3b first commit
|
|
* 3ef2450 git: добавлено игнорирование файлов
|
|
* 34797a6 code: добавлено действие вывода разности двух чисел
|
|
* 1cbb073 code: добавлено действие вывода суммы двух чисел
|
|
* 6f2000c code: добавлено действие ввода двух чисел
|
|
* 79e3482 build: добавлен файл проекта
|
|
* 52f11a8 code: заготовка программы
|
|
|
|
--Все в порядке, можно отправить изменения на сервер:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push origin main
|
|
Enter passphrase for key '/c/Users/Natasha/.ssh/id_ed25519':
|
|
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), 430 bytes | 430.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 uit.mpei.ru:EvdochenkoNV/cs-lab02.git
|
|
0a35430..0f4a19d main -> main
|
|
|
|
--На всякий случай проверю соответствие версий:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 0f4a19d (HEAD -> main, origin/main, origin/HEAD) code: добавлено действие вывода минимума из двух чисел
|
|
* 0a35430 code: добавлено действие вывода максимума из двух чисел
|
|
* 03658ad code: добавлено действие вывода деления двух чисел
|
|
* a732f9b code: добавлено действие вывода произведения двух чисел
|
|
* 575ec3b first commit
|
|
* 3ef2450 git: добавлено игнорирование файлов
|
|
* 34797a6 code: добавлено действие вывода разности двух чисел
|
|
* 1cbb073 code: добавлено действие вывода суммы двух чисел
|
|
* 6f2000c code: добавлено действие ввода двух чисел
|
|
* 79e3482 build: добавлен файл проекта
|
|
* 52f11a8 code: заготовка программы
|
|
|
|
|
|
______Машина Алисы
|
|
|
|
--Алиса находится пока не на последней версии, которую Боб "недавно отправил", она не в курсе. Решила поменять тип данных с int на double, осознавая, что это займет время. Для этого создам новую ветку, для ясности назову ее double:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git branch double
|
|
|
|
--Переключучь на ветку double:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git checkout double
|
|
Switched to branch 'double'
|
|
|
|
--Меняю тип данных на double, затем коммичу изменения:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git commit -a -m 'code: изменен тип чисел с целых на действительные'
|
|
[double 975564b] code: изменен тип чисел с целых на действительные
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
--Переключаюсь обратно на ветку main:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git checkout main
|
|
Switched to branch 'main'
|
|
|
|
--Синхронизирую ветку main Алисы с удаленным хранилищем:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git fetch
|
|
remote: Enumerating objects: 5, done.
|
|
remote: Counting objects: 100% (5/5), done.
|
|
remote: Compressing objects: 100% (3/3), done.
|
|
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
|
|
Unpacking objects: 100% (3/3), 410 bytes | 10.00 KiB/s, done.
|
|
From uit.mpei.ru:EvdochenkoNV/cs-lab02
|
|
0a35430..0f4a19d main -> origin/main
|
|
|
|
--Просмотрю историю веток:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 975564b (double) code: изменен тип чисел с целых на действительные
|
|
| * 0f4a19d (origin/main, origin/HEAD) code: добавлено действие вывода минимума из двух чисел
|
|
|/
|
|
* 0a35430 (HEAD -> main) code: добавлено действие вывода максимума из двух чисел
|
|
* 03658ad code: добавлено действие вывода деления двух чисел
|
|
* a732f9b code: добавлено действие вывода произведения двух чисел
|
|
* 575ec3b first commit
|
|
* 3ef2450 git: добавлено игнорирование файлов
|
|
* 34797a6 code: добавлено действие вывода разности двух чисел
|
|
* 1cbb073 code: добавлено действие вывода суммы двух чисел
|
|
* 6f2000c code: добавлено действие ввода двух чисел
|
|
* 79e3482 build: добавлен файл проекта
|
|
* 52f11a8 code: заготовка программы
|
|
|
|
--Видно, что пока ответвление никак не связано с основной версией. Это необходимо исправить, поэтому продвину состояние ветки "HEAD -> main" до актуальной для машины Алисы:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git pull origin main
|
|
From uit.mpei.ru:EvdochenkoNV/cs-lab02
|
|
* branch main -> FETCH_HEAD
|
|
Updating 0a35430..0f4a19d
|
|
Fast-forward
|
|
main.cpp | 12 ++++++++++--
|
|
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
|
|
--Займусь сливанием веток, чтобы не было расхождений:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git merge double
|
|
Auto-merging main.cpp
|
|
CONFLICT (content): Merge conflict in main.cpp
|
|
Automatic merge failed; fix conflicts and then commit the result.
|
|
|
|
--После этой команды, содержание кода обновилось и все конфликты и ненужные блоки кода уберу.
|
|
|
|
--Теперь закоммичу новую ветку:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main|MERGING)
|
|
$ git commit -a -m 'git: ветка double слита в ветку main'
|
|
[main 7445691] git: ветка double слита в ветку main
|
|
|
|
--Актуализирую проект, отправив его на сервер:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push origin main
|
|
Enter passphrase for key '/c/Users/Natasha/.ssh/id_ed25519':
|
|
Enter passphrase for key '/c/Users/Natasha/.ssh/id_ed25519':
|
|
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), 673 bytes | 673.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 uit.mpei.ru:EvdochenkoNV/cs-lab02.git
|
|
0f4a19d..7445691 main -> main
|
|
|
|
--Проверю, что теперь версия Алисы синхронизирована с сервером:
|
|
|
|
Natasha@DESKTOP-VOTQ4U6 MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 7445691 (HEAD -> main, origin/main, origin/HEAD) git: ветка double слита в ветку main
|
|
|\
|
|
| * 975564b (double) code: изменен тип чисел с целых на действительные
|
|
* | 0f4a19d code: добавлено действие вывода минимума из двух чисел
|
|
|/
|
|
* 0a35430 code: добавлено действие вывода максимума из двух чисел
|
|
* 03658ad code: добавлено действие вывода деления двух чисел
|
|
* a732f9b code: добавлено действие вывода произведения двух чисел
|
|
* 575ec3b first commit
|
|
* 3ef2450 git: добавлено игнорирование файлов
|
|
* 34797a6 code: добавлено действие вывода разности двух чисел
|
|
* 1cbb073 code: добавлено действие вывода суммы двух чисел
|
|
* 6f2000c code: добавлено действие ввода двух чисел
|
|
* 79e3482 build: добавлен файл проекта
|
|
* 52f11a8 code: заготовка программы
|
|
|
|
--Готово!!!
|