|
|
|
@ -0,0 +1,897 @@
|
|
|
|
|
# Отчет по лабораторной работе № 2 «Система контроля версий Git»
|
|
|
|
|
|
|
|
|
|
Выполнил: Гордиевских Д. А. \
|
|
|
|
|
Группа: А-01-23 \
|
|
|
|
|
Проверил: Козлюк Д. А.
|
|
|
|
|
|
|
|
|
|
Примечание: работа выполнялась на Windows в IDE Visual studio 2022.
|
|
|
|
|
Это значит, что на этапе добавления файлов проекта будет добавлено больше файлов
|
|
|
|
|
|
|
|
|
|
1. Создал на рабочем столе каталог LABA2 и запустил в нем Git Bash, приглашение:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2
|
|
|
|
|
$
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. Просмотрел файлы в рабочем каталоге можно командой `ls` — пусто:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2
|
|
|
|
|
$ ls
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2
|
|
|
|
|
$
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. Создал каталоги Алисы и Боба, создал каталог `project`,
|
|
|
|
|
изучил команду `cd` в процессе:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2
|
|
|
|
|
$ mkdir alice
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2
|
|
|
|
|
$ mkdir bob
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2
|
|
|
|
|
$ cd alice/
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice
|
|
|
|
|
$ mkdir project
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice
|
|
|
|
|
$ cd project/
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project
|
|
|
|
|
$ cd ..
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice
|
|
|
|
|
$ cd project/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4. Инициализировал репозитарий:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project
|
|
|
|
|
$ git init
|
|
|
|
|
Initialized empty Git repository in C:/Users/gorda/OneDrive/Рабочий стол/LABA2/alice/project/.git/
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (master)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
У меня имя ветки по умолчанию не настроено.
|
|
|
|
|
Git создал ветку под названием `master`, что видно в приглашении терминала.
|
|
|
|
|
Подсказка о смене ветки не появилась. Позже имя ветки будет изменено на `main`
|
|
|
|
|
|
|
|
|
|
5. Настраиваем имя пользователя и email
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (master)
|
|
|
|
|
$ git config user.name "Alice (GordiyevskikDA)"
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (master)
|
|
|
|
|
$ git config user.email "gordiyevskikda@mpei.ru"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
6. Просмотрим статус репозитария
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
$ git status
|
|
|
|
|
On branch master
|
|
|
|
|
|
|
|
|
|
No commits yet
|
|
|
|
|
|
|
|
|
|
Untracked files:
|
|
|
|
|
(use "git add <file>..." to include in what will be committed)
|
|
|
|
|
.vs/
|
|
|
|
|
main.cpp
|
|
|
|
|
main.sln
|
|
|
|
|
main.vcxproj
|
|
|
|
|
main.vcxproj.filters
|
|
|
|
|
main.vcxproj.user
|
|
|
|
|
|
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
В ветке MASTER отсутствуют коммиты. Приведён список файлов, незанесённых под контроль версий
|
|
|
|
|
Подсказка: Для добавления файлов нужно написать команду из скобок
|
|
|
|
|
|
|
|
|
|
7. Добавим main.cpp и посмотрим статус репозитария
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (master)
|
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (master)
|
|
|
|
|
$ git status
|
|
|
|
|
On branch master
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
.vs/
|
|
|
|
|
main.sln
|
|
|
|
|
main.vcxproj
|
|
|
|
|
main.vcxproj.filters
|
|
|
|
|
main.vcxproj.user
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Git status показывает, что в изменениях для следующего коммита присутствует новый файл main.cpp
|
|
|
|
|
|
|
|
|
|
8. Закоммитим main.cpp
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (master)
|
|
|
|
|
$ git commit -m 'code: заготовка программы'
|
|
|
|
|
[master (root-commit) 6f61cde] code: заготовка программы
|
|
|
|
|
1 file changed, 20 insertions(+)
|
|
|
|
|
create mode 100644 main.cpp
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
9. Переименуем ветку из master в main
|
|
|
|
|
Добавим под контроль версий файлы проекта. Т.к используется VS, необходимо добавить 4 файла
|
|
|
|
|
И, соответственно, сразу создаём коммит "code:..."
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (master)
|
|
|
|
|
$ git branch -m main
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git add main.sln
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git add main.vcxproj
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git add main.vcxproj.filters
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git add main.vcxproj.user
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git commit -m 'biuld: добавлены файлы проекта'
|
|
|
|
|
[main ff38e89] biuld: добавлены файлы проекта
|
|
|
|
|
4 files changed, 192 insertions(+)
|
|
|
|
|
create mode 100644 main.sln
|
|
|
|
|
create mode 100644 main.vcxproj
|
|
|
|
|
create mode 100644 main.vcxproj.filters
|
|
|
|
|
create mode 100644 main.vcxproj.user
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
10. Изменим main.cpp, добавив ввод, но не обновим этот файл в git.
|
|
|
|
|
Посмотрим статус репозитория:
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/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)
|
|
|
|
|
.vs/
|
|
|
|
|
|
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
|
```
|
|
|
|
|
Видим, что в ветке main есть изменения не поставленные в очередь коммита,
|
|
|
|
|
т.е изменённые: main.cpp.
|
|
|
|
|
Если файл изменён, пишется "MODIFIED", если добавлен "New file"
|
|
|
|
|
|
|
|
|
|
11. Создадим коммит с вводом чисел:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git commit -m "code: Добавлена сумма"
|
|
|
|
|
[main 8691b4c] code: Добавлена сумма
|
|
|
|
|
1 file changed, 6 insertions(+), 16 deletions(-)
|
|
|
|
|
```
|
|
|
|
|
Здесь я написал неправильную тему коммита: случайно посмотрел на следующий шаг с суммой
|
|
|
|
|
Т.к VS 2022 в новом проекте создаёт текстовые подсказки, соответственно, они были добавлены при первом коммите
|
|
|
|
|
"16 deletions(-)" означает, что я стёр эти 16 строк подсказок от VS
|
|
|
|
|
|
|
|
|
|
12. Добавим в программу вывод суммы и сделаем коммит, а потом и разность:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git add -u
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git commit -m "code: Теперь точно сумма"
|
|
|
|
|
[main 8420143] code: Теперь точно сумма
|
|
|
|
|
1 file changed, 1 insertion(+)
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git commit -a -m "code: Вывод разности"
|
|
|
|
|
[main 666c1db] code: Вывод разности
|
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
13. Создал файл .gitignore и занёс в него сначала "/x64" и "IgnoreMe.txt"
|
|
|
|
|
Между занесениями вводил git status
|
|
|
|
|
Также внесём в git данный файл
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git status
|
|
|
|
|
On branch main
|
|
|
|
|
Untracked files:
|
|
|
|
|
(use "git add <file>..." to include in what will be committed)
|
|
|
|
|
.gitignore
|
|
|
|
|
.vs/
|
|
|
|
|
|
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git status
|
|
|
|
|
On branch main
|
|
|
|
|
Untracked files:
|
|
|
|
|
(use "git add <file>..." to include in what will be committed)
|
|
|
|
|
.gitignore
|
|
|
|
|
.vs/
|
|
|
|
|
|
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git add .gitignore
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git commit -m "git: Добавлен gitignore"
|
|
|
|
|
[main 47a638a] git: Добавлен gitignore
|
|
|
|
|
1 file changed, 2 insertions(+)
|
|
|
|
|
create mode 100644 .gitignore
|
|
|
|
|
```
|
|
|
|
|
Теперь в git не будут заноситься каталог /x64 и IgnoreMe.txt
|
|
|
|
|
|
|
|
|
|
14. Посмотрим историю коммитов в трёх исполнениях
|
|
|
|
|
Просто вывод, сжато и сжато+дерево
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git log
|
|
|
|
|
commit 47a638ac2e5b67440d3b54789198e27d6f0b96a6 (HEAD -> main)
|
|
|
|
|
Author: Alice (GordiyevskikDA) <gordiyevskikda@mpei.ru>
|
|
|
|
|
Date: Sat Feb 24 08:06:21 2024 +0300
|
|
|
|
|
|
|
|
|
|
git: Добавлен gitignore
|
|
|
|
|
|
|
|
|
|
commit 666c1db22fe3d91cbbdfa0e5f5bfe57422085a44
|
|
|
|
|
Author: Alice (GordiyevskikDA) <gordiyevskikda@mpei.ru>
|
|
|
|
|
Date: Sat Feb 24 08:03:11 2024 +0300
|
|
|
|
|
|
|
|
|
|
code: Вывод разности
|
|
|
|
|
|
|
|
|
|
commit 8420143b31550bed0968db18177865aa4abd663c
|
|
|
|
|
Author: Alice (GordiyevskikDA) <gordiyevskikda@mpei.ru>
|
|
|
|
|
Date: Sat Feb 24 08:02:25 2024 +0300
|
|
|
|
|
|
|
|
|
|
code: Теперь точно сумма
|
|
|
|
|
|
|
|
|
|
commit 8691b4cd655d37576450d0c7f1c13f25443d21b1
|
|
|
|
|
Author: Alice (GordiyevskikDA) <gordiyevskikda@mpei.ru>
|
|
|
|
|
Date: Sat Feb 24 08:01:13 2024 +0300
|
|
|
|
|
|
|
|
|
|
code: Добавлена сумма
|
|
|
|
|
|
|
|
|
|
commit ff38e89c0504016c1e017d7a0a92036a71024ba8
|
|
|
|
|
Author: Alice (GordiyevskikDA) <gordiyevskikda@mpei.ru>
|
|
|
|
|
Date: Sat Feb 24 07:58:44 2024 +0300
|
|
|
|
|
|
|
|
|
|
biuld: добавлены файлы проекта
|
|
|
|
|
|
|
|
|
|
commit 6f61cde9d24a041fa32fd9a7dc0bdd84c5413d54
|
|
|
|
|
Author: Alice (GordiyevskikDA) <gordiyevskikda@mpei.ru>
|
|
|
|
|
Date: Sat Feb 24 07:57:05 2024 +0300
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git log --oneline --decorate
|
|
|
|
|
47a638a (HEAD -> main) git: Добавлен gitignore
|
|
|
|
|
666c1db code: Вывод разности
|
|
|
|
|
8420143 code: Теперь точно сумма
|
|
|
|
|
8691b4c code: Добавлена сумма
|
|
|
|
|
ff38e89 biuld: добавлены файлы проекта
|
|
|
|
|
6f61cde code: заготовка программы
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git log --oneline --decorate --all --graph
|
|
|
|
|
* 47a638a (HEAD -> main) git: Добавлен gitignore
|
|
|
|
|
* 666c1db code: Вывод разности
|
|
|
|
|
* 8420143 code: Теперь точно сумма
|
|
|
|
|
* 8691b4c code: Добавлена сумма
|
|
|
|
|
* ff38e89 biuld: добавлены файлы проекта
|
|
|
|
|
* 6f61cde code: заготовка программы
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
15. Введём git log --stat и посмотрим, что он скажет относительно последнего коммита
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git log --stat
|
|
|
|
|
commit 47a638ac2e5b67440d3b54789198e27d6f0b96a6 (HEAD -> main)
|
|
|
|
|
Author: Alice (GordiyevskikDA) <gordiyevskikda@mpei.ru>
|
|
|
|
|
Date: Sat Feb 24 08:06:21 2024 +0300
|
|
|
|
|
|
|
|
|
|
git: Добавлен gitignore
|
|
|
|
|
|
|
|
|
|
.gitignore | 2 ++
|
|
|
|
|
1 file changed, 2 insertions(+)
|
|
|
|
|
```
|
|
|
|
|
Показывается хэш коммита, кто его сделал, точное время создания коммита с часовым поясом,
|
|
|
|
|
тема коммита, добавленный файл. Показывается, сколько файлов изменено и сколько строк в этом файле вставлено
|
|
|
|
|
|
|
|
|
|
16. Посмотрим коммиты с темой "build" и коммиты, относящиеся к main.cpp
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git log -- main.sln
|
|
|
|
|
commit ff38e89c0504016c1e017d7a0a92036a71024ba8
|
|
|
|
|
Author: Alice (GordiyevskikDA) <gordiyevskikda@mpei.ru>
|
|
|
|
|
Date: Sat Feb 24 07:58:44 2024 +0300
|
|
|
|
|
|
|
|
|
|
biuld: добавлены файлы проекта
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git log --grep "biuld"
|
|
|
|
|
commit ff38e89c0504016c1e017d7a0a92036a71024ba8
|
|
|
|
|
Author: Alice (GordiyevskikDA) <gordiyevskikda@mpei.ru>
|
|
|
|
|
Date: Sat Feb 24 07:58:44 2024 +0300
|
|
|
|
|
|
|
|
|
|
biuld: добавлены файлы проекта
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
17. Посмотрим предпоследний коммит
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git show HEAD~1
|
|
|
|
|
commit 666c1db22fe3d91cbbdfa0e5f5bfe57422085a44
|
|
|
|
|
Author: Alice (GordiyevskikDA) <gordiyevskikda@mpei.ru>
|
|
|
|
|
Date: Sat Feb 24 08:03:11 2024 +0300
|
|
|
|
|
|
|
|
|
|
code: Вывод разности
|
|
|
|
|
|
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
|
|
|
index 74516c3..8b0c291 100644
|
|
|
|
|
--- a/main.cpp
|
|
|
|
|
+++ b/main.cpp
|
|
|
|
|
@@ -7,5 +7,5 @@ int main()
|
|
|
|
|
cout << "Enter A and B: ";
|
|
|
|
|
int a, b;
|
|
|
|
|
cin >> a >> b;
|
|
|
|
|
- cout << "A + B = " << a + b << '\n';
|
|
|
|
|
+ cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
|
|
|
|
|
}
|
|
|
|
|
\ No newline at end of file
|
|
|
|
|
```
|
|
|
|
|
Показывается хэш, автор, дата, время, тема. Код программы: - означает удаление указанной строки, а + добавление
|
|
|
|
|
|
|
|
|
|
18. Добавим печать произведения в программу но не станем пока делать коммит
|
|
|
|
|
Посмотрим изменения в рабочей копии
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git diff
|
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
|
|
|
index 8b0c291..6192c68 100644
|
|
|
|
|
--- a/main.cpp
|
|
|
|
|
+++ b/main.cpp
|
|
|
|
|
@@ -7,5 +7,5 @@ int main()
|
|
|
|
|
cout << "Enter A and B: ";
|
|
|
|
|
int a, b;
|
|
|
|
|
cin >> a >> b;
|
|
|
|
|
- cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
|
|
|
|
|
+ cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n' << "A * B = " << a * b << '\n';
|
|
|
|
|
}
|
|
|
|
|
\ No newline at end of file
|
|
|
|
|
```
|
|
|
|
|
Показывается хэш, автор, дата, время, тема. Код программы: - означает удаление указанной строки, а + добавление
|
|
|
|
|
|
|
|
|
|
19. Посмотрим изменения между самым первым коммитом и коммитом, добавляющим вывод разности
|
|
|
|
|
Для этого используем хэши этих коммитов, которые написаны сильно выше
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git diff 6f61cde 666c1db
|
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
|
|
|
index 8118e09..8b0c291 100644
|
|
|
|
|
--- a/main.cpp
|
|
|
|
|
+++ b/main.cpp
|
|
|
|
|
@@ -1,20 +1,11 @@
|
|
|
|
|
-// main.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
|
|
|
|
|
-//
|
|
|
|
|
+#include <iostream>
|
|
|
|
|
|
|
|
|
|
-#include <iostream>
|
|
|
|
|
+using namespace std;
|
|
|
|
|
|
|
|
|
|
int main()
|
|
|
|
|
{
|
|
|
|
|
- std::cout << "Hello World!\n";
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
|
|
|
|
|
-// Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
|
|
|
|
|
-
|
|
|
|
|
-// Советы по началу работы
|
|
|
|
|
-// 1. В окне обозревателя решений можно добавлять файлы и управлять ими.
|
|
|
|
|
-// 2. В окне Team Explorer можно подключиться к системе управления версиями.
|
|
|
|
|
-// 3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
|
|
|
|
|
-// 4. В окне "Список ошибок" можно просматривать ошибки.
|
|
|
|
|
-// 5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
|
|
|
|
|
-// 6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.
|
|
|
|
|
+ cout << "Enter A and B: ";
|
|
|
|
|
+ int a, b;
|
|
|
|
|
+ cin >> a >> b;
|
|
|
|
|
+ cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
|
|
|
|
|
+}
|
|
|
|
|
```
|
|
|
|
|
Перед первым коммитом я не почистил cpp файл от подсказок IDE. Видно, что потом они были удалены
|
|
|
|
|
6f61cde — хэш самого первого коммита, а 666c1db — коммита вывода разности
|
|
|
|
|
|
|
|
|
|
20. Закоммитим изменения в рабочей копии (вывод произведения)
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git commit -m "code: вывод произведения"
|
|
|
|
|
[main 2c1b088] code: вывод произведения
|
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
21. Откатимся к предпоследнему коммиту:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git reset --hard HEAD~1
|
|
|
|
|
HEAD is now at 47a638a git: Добавлен gitignore
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
22. Добавим над функцией main() комментарий и Уберем изменения в main.cpp другим способом — откатив этот файл к состоянию в последнем коммите (HEAD):
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git checkout HEAD -- main.cpp
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
23. Сгенерируем приватный ключ для gitea на сайте кафедры
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ ssh-keygen
|
|
|
|
|
Generating public/private ed25519 key pair.
|
|
|
|
|
Enter file in which to save the key (/c/Users/gorda/.ssh/id_ed25519):
|
|
|
|
|
........
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
24. Запустим ssh-agent и загрузим ключ
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ eval $(ssh-agent -s)
|
|
|
|
|
Agent pid 660
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ ssh-add
|
|
|
|
|
Identity added: /c/Users/gorda/.ssh/id_ed25519 (gorda@DESKTOP-2IL75KC)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
25. После добавления открытого ключа в профиль на git сайта кафедры связываем локальный и удалённый репозитарий и отправляем всё в облако
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git remote add origin http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02.git
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git push -u origin main
|
|
|
|
|
Enumerating objects: 21, done.
|
|
|
|
|
Counting objects: 100% (21/21), done.
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
Compressing objects: 100% (19/19), done.
|
|
|
|
|
Writing objects: 100% (21/21), 4.55 KiB | 1.51 MiB/s, done.
|
|
|
|
|
Total 21 (delta 7), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
To http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02.git
|
|
|
|
|
* [new branch] main -> main
|
|
|
|
|
branch 'main' set up to track 'origin/main'.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
26. На машине Боба.
|
|
|
|
|
Клонируем репозитарий с облака, указав URL и папку
|
|
|
|
|
Перейдём в папку проекта
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob
|
|
|
|
|
$ git clone http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02.git project
|
|
|
|
|
Cloning into 'project'...
|
|
|
|
|
remote: Enumerating objects: 24, done.
|
|
|
|
|
remote: Counting objects: 100% (24/24), done.
|
|
|
|
|
remote: Compressing objects: 100% (22/22), done.
|
|
|
|
|
remote: Total 24 (delta 9), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
Receiving objects: 100% (24/24), 4.81 KiB | 2.41 MiB/s, done.
|
|
|
|
|
Resolving deltas: 100% (9/9), done.
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob
|
|
|
|
|
$ cd project/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
27. Настроим локальный репозитарий для Боба
|
|
|
|
|
Изменим имя пользователя и email
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main)
|
|
|
|
|
$ git config user.name "Bob (GordiyevskikDA)"
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main)
|
|
|
|
|
$ git config user.email "gordiyevskikda@mpei.ru"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
28. Добавим печать произведения, сделаем коммит и отправим на сервер
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main)
|
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main)
|
|
|
|
|
$ git commit -m "code: Добавил произведение"
|
|
|
|
|
[main fa9ce57] code: Добавил произведение
|
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main)
|
|
|
|
|
$ git push
|
|
|
|
|
Enumerating objects: 5, done.
|
|
|
|
|
Counting objects: 100% (5/5), done.
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
Compressing objects: 100% (3/3), done.
|
|
|
|
|
Writing objects: 100% (3/3), 337 bytes | 337.00 KiB/s, done.
|
|
|
|
|
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
To http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02.git
|
|
|
|
|
20f7ad4..fa9ce57 main -> main
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
29. На машине Алисы загрузим изменения Боба
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/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), 317 bytes | 31.00 KiB/s, done.
|
|
|
|
|
From http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02
|
|
|
|
|
20f7ad4..fa9ce57 main -> origin/main
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git log --oneline --decorate --all --graph
|
|
|
|
|
* fa9ce57 (origin/main) code: Добавил произведение
|
|
|
|
|
* 20f7ad4 (HEAD -> main) code: Вывод произведения
|
|
|
|
|
* 47a638a git: Добавлен gitignore
|
|
|
|
|
* 666c1db code: Вывод разности
|
|
|
|
|
* 8420143 code: Теперь точно сумма
|
|
|
|
|
* 8691b4c code: Добавлена сумма
|
|
|
|
|
* ff38e89 biuld: добавлены файлы проекта
|
|
|
|
|
* 6f61cde code: заготовка программы
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git pull --ff-only
|
|
|
|
|
Updating 20f7ad4..fa9ce57
|
|
|
|
|
Fast-forward
|
|
|
|
|
main.cpp | 2 +-
|
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
```
|
|
|
|
|
После введения первой команды земетим, что в рабочей копии изменений еще не произошло
|
|
|
|
|
Просмотрим историю и увидим, ветка main отстает на один коммит от ветки origin/main (версии ветки main из удаленного репозитария под названием origin, то есть на сервере).
|
|
|
|
|
Пододвинем Main к скачанной версии
|
|
|
|
|
|
|
|
|
|
29. Добавим в программу печать деления, сделаем коммит и отправим на сервер
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git commit -m "code: Добавил частное"
|
|
|
|
|
[main 22dd72f] code: Добавил частное
|
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git push
|
|
|
|
|
Enumerating objects: 5, done.
|
|
|
|
|
Counting objects: 100% (5/5), done.
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
Compressing objects: 100% (3/3), done.
|
|
|
|
|
Writing objects: 100% (3/3), 358 bytes | 358.00 KiB/s, done.
|
|
|
|
|
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
To http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02.git
|
|
|
|
|
fa9ce57..22dd72f main -> main
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
30. У Алисы. Дополним программу печатью максимума, сделаем коммит и отправим на сервер
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git commit -m "code: Добавлена печать максимума"
|
|
|
|
|
[main 92284ce] code: Добавлена печать максимума
|
|
|
|
|
1 file changed, 6 insertions(+)
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git push
|
|
|
|
|
Enumerating objects: 5, done.
|
|
|
|
|
Counting objects: 100% (5/5), done.
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
Compressing objects: 100% (3/3), done.
|
|
|
|
|
Writing objects: 100% (3/3), 390 bytes | 390.00 KiB/s, done.
|
|
|
|
|
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
To http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02.git
|
|
|
|
|
22dd72f..92284ce main -> main
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
31. На машине Боба:
|
|
|
|
|
Не обновляя локальный репозитарий, добавим печать минимума, сделаем коммит и попытаемся отправить на сервер
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main)
|
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main)
|
|
|
|
|
$ git commit -m "code: Добавлена печать минимума"
|
|
|
|
|
[main debe504] code: Добавлена печать минимума
|
|
|
|
|
1 file changed, 6 insertions(+)
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main)
|
|
|
|
|
$ git push
|
|
|
|
|
To http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02.git
|
|
|
|
|
! [rejected] main -> main (fetch first)
|
|
|
|
|
error: failed to push some refs to 'http://uit.mpei.ru/git/GordiyevskikDA/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.
|
|
|
|
|
```
|
|
|
|
|
Видно, что Git не дайт этого сделать, так как коммит Боба основан не на последнем существующем коммите
|
|
|
|
|
|
|
|
|
|
32. Посмотрим всю историю коммитов, предварительно загрузим их
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/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), 370 bytes | 37.00 KiB/s, done.
|
|
|
|
|
From http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02
|
|
|
|
|
22dd72f..92284ce main -> origin/main
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main)
|
|
|
|
|
$ git log --oneline --decorate --all --graph
|
|
|
|
|
* debe504 (HEAD -> main) code: Добавлена печать минимума
|
|
|
|
|
| * 92284ce (origin/main, origin/HEAD) code: Добавлена печать максимума
|
|
|
|
|
|/
|
|
|
|
|
* 22dd72f code: Добавил частное
|
|
|
|
|
* fa9ce57 code: Добавил произведение
|
|
|
|
|
* 20f7ad4 code: Вывод произведения
|
|
|
|
|
* 47a638a git: Добавлен gitignore
|
|
|
|
|
* 666c1db code: Вывод разности
|
|
|
|
|
* 8420143 code: Теперь точно сумма
|
|
|
|
|
* 8691b4c code: Добавлена сумма
|
|
|
|
|
* ff38e89 biuld: добавлены файлы проекта
|
|
|
|
|
* 6f61cde code: заготовка программы
|
|
|
|
|
```
|
|
|
|
|
Видно, что возник конфликт коммитов. Это можно понять по символам "|" перед последним удачно отправленным коммитом
|
|
|
|
|
|
|
|
|
|
33. Попытаемся перенести коммит Боба поверх коммита Алисы, то есть поверх origin/main
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main)
|
|
|
|
|
$ git rebase origin/main
|
|
|
|
|
Auto-merging main.cpp
|
|
|
|
|
CONFLICT (content): Merge conflict in main.cpp
|
|
|
|
|
error: could not apply debe504... 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".
|
|
|
|
|
Could not apply debe504... code: Добавлена печать минимума
|
|
|
|
|
```
|
|
|
|
|
На что получаем сообщение о конфликте кода. Необходимо сначала привести код Боба к тому виду, как у Алисы, а потом добавлять его функцию
|
|
|
|
|
Сделаем это вручную. VS 2022 подсвечивает места конфликтов версий
|
|
|
|
|
|
|
|
|
|
34. После изменения кода нужно добавить файл в индекс и продолжить прерванную операцию rebase, а также отправим изменения на сервер:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main|REBASE 1/1)
|
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main|REBASE 1/1)
|
|
|
|
|
$ git rebase --continue
|
|
|
|
|
hint: Waiting for your editor to close the file... 0 [sig] bash 926! sigpacket::process: Suppressing signal 18 to win32 process (pid 20196)
|
|
|
|
|
[detached HEAD cdf30fd] code: Добавлена печать минимума
|
|
|
|
|
1 file changed, 6 insertions(+)
|
|
|
|
|
Successfully rebased and updated refs/heads/main.
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/bob/project (main)
|
|
|
|
|
$ git push
|
|
|
|
|
Enumerating objects: 5, done.
|
|
|
|
|
Counting objects: 100% (5/5), done.
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
Compressing objects: 100% (3/3), done.
|
|
|
|
|
Writing objects: 100% (3/3), 363 bytes | 363.00 KiB/s, done.
|
|
|
|
|
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
To http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02.git
|
|
|
|
|
92284ce..cdf30fd main -> main
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
35. Перейдём на машину Алисы. Создадим ветку double и перейдём в неё
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git branch double
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git checkout double
|
|
|
|
|
Switched to branch 'double'
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (double)
|
|
|
|
|
$
|
|
|
|
|
```
|
|
|
|
|
Видим, что приглашение в командной строке изменилось. "(main)" стало "(double)"
|
|
|
|
|
|
|
|
|
|
36. Перейдём в ветку main, синхронзируем репозитарии и посмотрим историю:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (double)
|
|
|
|
|
$ git checkout main
|
|
|
|
|
Switched to branch 'main'
|
|
|
|
|
Your branch is up to date with 'origin/main'.
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/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), 343 bytes | 31.00 KiB/s, done.
|
|
|
|
|
From http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02
|
|
|
|
|
92284ce..cdf30fd main -> origin/main
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git log --oneline --decorate --all --graph
|
|
|
|
|
* dbeedcb (double) code: Изменён тип переменной
|
|
|
|
|
| * cdf30fd (origin/main) code: Добавлена печать минимума
|
|
|
|
|
|/
|
|
|
|
|
* 92284ce (HEAD -> main) code: Добавлена печать максимума
|
|
|
|
|
* 22dd72f code: Добавил частное
|
|
|
|
|
* fa9ce57 code: Добавил произведение
|
|
|
|
|
* 20f7ad4 code: Вывод произведения
|
|
|
|
|
* 47a638a git: Добавлен gitignore
|
|
|
|
|
* 666c1db code: Вывод разности
|
|
|
|
|
* 8420143 code: Теперь точно сумма
|
|
|
|
|
* 8691b4c code: Добавлена сумма
|
|
|
|
|
* ff38e89 biuld: добавлены файлы проекта
|
|
|
|
|
* 6f61cde code: заготовка программы
|
|
|
|
|
```
|
|
|
|
|
Видим две вещи:
|
|
|
|
|
1) Версия кода Алисы не совпадает с версией кода Боба. Т.к. перед созданием ветки мы не сделали обновление локального репозитария
|
|
|
|
|
2) коммит с хэшем "dbeedcb", в котором мы меняли тип переменной в другой ветке
|
|
|
|
|
|
|
|
|
|
37. Сольём ветку double с главной
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git merge double
|
|
|
|
|
Updating 92284ce..dbeedcb
|
|
|
|
|
Fast-forward
|
|
|
|
|
main.cpp | 2 +-
|
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
38. Попытаемся отправить изменения на сервер
|
|
|
|
|
Но т.к. существует конфликт версий, о котором я писал в шаге 36, получаем ошибку
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git push
|
|
|
|
|
To http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02.git
|
|
|
|
|
! [rejected] main -> main (non-fast-forward)
|
|
|
|
|
error: failed to push some refs to 'http://uit.mpei.ru/git/GordiyevskikDA/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.
|
|
|
|
|
```
|
|
|
|
|
Для исправления переключлся в ветку double, добавил правки Боба, создал коммит и отправил на сервер
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git checkout double
|
|
|
|
|
Switched to branch 'double'
|
|
|
|
|
M main.cpp
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (double)
|
|
|
|
|
$ git add main.cpp
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (double)
|
|
|
|
|
$ git commit -m "code: Изменён тип переменной (double)"
|
|
|
|
|
[double ad91778] code: Изменён тип переменной (double)
|
|
|
|
|
1 file changed, 6 insertions(+)
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (double)
|
|
|
|
|
$ git checkout main
|
|
|
|
|
Switched to branch 'main'
|
|
|
|
|
Your branch and 'origin/main' have diverged,
|
|
|
|
|
and have 1 and 1 different commits each, respectively.
|
|
|
|
|
(use "git pull" if you want to integrate the remote branch with yours)
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git merge double
|
|
|
|
|
Updating dbeedcb..ad91778
|
|
|
|
|
Fast-forward
|
|
|
|
|
main.cpp | 6 ++++++
|
|
|
|
|
1 file changed, 6 insertions(+)
|
|
|
|
|
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git push
|
|
|
|
|
Enumerating objects: 11, done.
|
|
|
|
|
Counting objects: 100% (11/11), done.
|
|
|
|
|
Delta compression using up to 8 threads
|
|
|
|
|
Compressing objects: 100% (7/7), done.
|
|
|
|
|
Writing objects: 100% (7/7), 802 bytes | 802.00 KiB/s, done.
|
|
|
|
|
Total 7 (delta 5), reused 0 (delta 0), pack-reused 0
|
|
|
|
|
remote: . Processing 1 references
|
|
|
|
|
remote: Processed 1 references in total
|
|
|
|
|
To http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02.git
|
|
|
|
|
cdf30fd..d77ebc2 main -> main
|
|
|
|
|
```
|
|
|
|
|
По причине того, что я не удалил коммит, который был сделан для кода бз правок Боба, но с изменением переменной Алисы,
|
|
|
|
|
Он тоже загрузился на сервер, но его сразу перекрыл нужный.
|
|
|
|
|
|
|
|
|
|
39. Посмотрим историю всех веток репозитария
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
gorda@DESKTOP-2IL75KC MINGW64 ~/OneDrive/Рабочий стол/LABA2/alice/project (main)
|
|
|
|
|
$ git log --oneline --decorate --all --graph
|
|
|
|
|
* d77ebc2 (HEAD -> main, origin/main) merge branch 'main' of http://uit.mpei.ru/git/GordiyevskikDA/cs-lab02
|
|
|
|
|
|\
|
|
|
|
|
* | ad91778 (double) code: Изменён тип переменной (double)
|
|
|
|
|
* | dbeedcb code: Изменён тип переменной
|
|
|
|
|
|/
|
|
|
|
|
* cdf30fd code: Добавлена печать минимума
|
|
|
|
|
* 92284ce code: Добавлена печать максимума
|
|
|
|
|
* 22dd72f code: Добавил частное
|
|
|
|
|
* fa9ce57 code: Добавил произведение
|
|
|
|
|
* 20f7ad4 code: Вывод произведения
|
|
|
|
|
* 47a638a git: Добавлен gitignore
|
|
|
|
|
* 666c1db code: Вывод разности
|
|
|
|
|
* 8420143 code: Теперь точно сумма
|
|
|
|
|
* 8691b4c code: Добавлена сумма
|
|
|
|
|
* ff38e89 biuld: добавлены файлы проекта
|
|
|
|
|
* 6f61cde code: заготовка программы
|
|
|
|
|
```
|
|
|
|
|
Видно, что два предпоследних коммита находятся в другой ветке
|
|
|
|
|
А последний коммит — слияние веток
|