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

1124 строки
41 KiB
Plaintext

Отчет по лабораторной работе № 2 "Система контроля версий Git"
Выполнил: Антонович А. Н.
Группа: А-03-23
Проверил: Козлюк Д. А.
Примечание: работа выполнялась на Windows.
1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02
$
2. Просмотрел файлы в рабочем каталоге можно командой "ls" - пусто:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02
$ ls
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02
$
3. Создал каталоги Алисы и Боба, создал каталог "project",
изучил команду "cd" в процессе:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir alice
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir bob
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd bob
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd ..
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd alice
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ mkdir project
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ ls
project/
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ cd project
4. Инициализировал репозитарий:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/sanya/OneDrive/Рабочий стол/lab02/alice/project/.git/
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master)
$
5. Поменял имя ветки с master на main:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master)
$ git branch -m main
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$
6. Настроил репозитарий Алисы:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.name 'Alice (AntonovichAN)'
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.email 'AntonovichAN@mpei.ru'
7. Запустил CodeBlocks и создал проект в репозитарии Алисы.
8. Проверил статус:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/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)
строка "On branch main" означает, что сейчас мы находимся на ветке main
строка "No commits yet" означает, что еще не существует коммитов
строка "untracked files: (...)" перечисляет, какие файлы не отслеживаются коммитами и подсказывает команду для отслеживания файлов
строка "nothing added to commit ..." показывает, что еще ни один файл не добавлен в коммит и присутствуют неотслеживаемые файлы и подсказывает команду для отслеживания файлов
9. Начинаю отслеживать файл main.cpp, и проверяю изменения:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/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
строка "Changes to be committed:" перечисляет произошедшие изменения - новый отслеживаемый файл main.cpp
10. Выполнил коммит:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: заготовка программы'
[main (root-commit) c52bc42] code: заготовка программы
1 file changed, 9 insertions(+)
create mode 100644 main.cpp
11. Добавил файл project.cbp в индекс и сделал с ним коммит:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/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
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'build: добавлен файл проекта'
[main c41f6c7] build: добавлен файл проекта
1 file changed, 40 insertions(+)
create mode 100644 project.cbp
12. Заменил тело функции main() на ввод двух чисел и проверил статус:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/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")
строка "Changes not staged for commit:" перечисляет произведенные изменения и подсказывает комманды для коммита изменений или отмены изменений
13. Использовал три способа для коммита измененинй:
#первый:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "code: первое изменение"
[main 2b8ab7b] code: первое изменение
1 file changed, 3 insertions(+), 2 deletions(-)
#второй:
добавил в программу вывод суммы a и b
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add -u
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: вывод суммы'
[main 88c5c69] code: вывод суммы
1 file changed, 1 insertion(+)
#третий:
добавил в программу вывод разности a и b
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m 'code: вывод разности'
[main 546e058] code: вывод разности
1 file changed, 2 insertions(+), 1 deletion(-)
14. Создал пустой файл в CodeBlocks и занес в список файлы для игнорирования, добавил .gitignore в список отслеживаемых файлов и закоммитил изменения:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/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)
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add .gitignore
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'git: игнорирование файлов'
[main 6a362f0] git: игнорирование файлов
1 file changed, 4 insertions(+)
create mode 100644 .gitignore
15. Просмотрел историю коммитов разными вариантами:
#первый:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log
commit 6a362f026be35ff22b92b51dd420b59f59c574f7 (HEAD -> main)
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:10:17 2024 +0300
git: игнорирование файлов
commit 546e058c9dcc717142c3a95a84cedf6aaa49e900
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:09:22 2024 +0300
code: вывод разности
commit 88c5c69583bcde4b9a44f8e7323d61347c3fe3d9
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:08:24 2024 +0300
code: вывод суммы
commit 2b8ab7b028c8257a6bc58a238704c91c48b45fc3
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:07:14 2024 +0300
code: первое изменение
commit c41f6c70d0b2b343662a0c2ebf3f2438407d6cb8
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:05:47 2024 +0300
build: добавлен файл проекта
commit c52bc425786c33d24d55c4c4d00c7bf7f095a351
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:04:43 2024 +0300
code: заготовка программы
(END)
#второй:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 6a362f0 (HEAD -> main) git: игнорирование файлов
* 546e058 code: вывод разности
* 88c5c69 code: вывод суммы
* 2b8ab7b code: первое изменение
* c41f6c7 build: добавлен файл проекта
* c52bc42 code: заготовка программы
#третий:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --stat
commit 6a362f026be35ff22b92b51dd420b59f59c574f7 (HEAD -> main)
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:10:17 2024 +0300
git: игнорирование файлов
.gitignore | 4 ++++
1 file changed, 4 insertions(+)
commit 546e058c9dcc717142c3a95a84cedf6aaa49e900
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:09:22 2024 +0300
code: вывод разности
main.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 88c5c69583bcde4b9a44f8e7323d61347c3fe3d9
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:08:24 2024 +0300
code: вывод суммы
main.cpp | 1 +
1 file changed, 1 insertion(+)
commit 2b8ab7b028c8257a6bc58a238704c91c48b45fc3
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:07:14 2024 +0300
code: первое изменение
main.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit c41f6c70d0b2b343662a0c2ebf3f2438407d6cb8
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:05:47 2024 +0300
build: добавлен файл проекта
project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
commit c52bc425786c33d24d55c4c4d00c7bf7f095a351
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:04:43 2024 +0300
code: заготовка программы
main.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
(END)
Комманда git log --stat выводит:
Полный хеш коммита, автора коммита, дата создания, название, отслеживаемый файл и изменения данного файла.
16. Отфильтровал коммиты по теме build, потом затрагивающие project.cbp:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --grep "build:"
commit c41f6c70d0b2b343662a0c2ebf3f2438407d6cb8
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:05:47 2024 +0300
build: добавлен файл проекта
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log -- project.cbp
commit c41f6c70d0b2b343662a0c2ebf3f2438407d6cb8
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:05:47 2024 +0300
build: добавлен файл проекта
17. Просмотрел последний комиит 3 разными способами и просмотрел предпоследний коммит:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show main
commit 6a362f026be35ff22b92b51dd420b59f59c574f7 (HEAD -> main)
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:10:17 2024 +0300
git: игнорирование файлов
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..aa24a77
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin
+/obj
+/project.layout
+/project.depend
\ No newline at end of file
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show HEAD
commit 6a362f026be35ff22b92b51dd420b59f59c574f7 (HEAD -> main)
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:10:17 2024 +0300
git: игнорирование файлов
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..aa24a77
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin
+/obj
+/project.layout
+/project.depend
\ No newline at end of file
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show 6a362f0
commit 6a362f026be35ff22b92b51dd420b59f59c574f7 (HEAD -> main)
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:10:17 2024 +0300
git: игнорирование файлов
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..aa24a77
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin
+/obj
+/project.layout
+/project.depend
\ No newline at end of file
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show HEAD~1
commit 546e058c9dcc717142c3a95a84cedf6aaa49e900
Author: Alice (AntonovichAN) <AntonovichAN@mpei.ru>
Date: Wed Aug 28 20:09:22 2024 +0300
code: вывод разности
diff --git a/main.cpp b/main.cpp
index 4364dbc..8435233 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,5 +7,6 @@ int main()
cout << "Enter A and B: ";
int a, b;
cin >> a >> b;
- cout << "A + B = " << a + b << '\n';
+ cout << "A + B = " << a + b << '\n'
+ << "A - B = " << a - b << '\n';
}
18.Внес изменения в main.cpp, после просмотрел изменения между самым первым коммитом и коммитом, добавляющим вывод разности:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff
diff --git a/main.cpp b/main.cpp
index 8435233..f372c78 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,5 +8,6 @@ int main()
int a, b;
cin >> a >> b;
cout << "A + B = " << a + b << '\n'
- << "A - B = " << a - b << '\n';
+ << "A - B = " << a - b << '\n'
+ << "A * B = " << a * b << '\n';
}
В первой строке "diff" отображены файлы для сравнения
Во втрой строке "index" отображаются внутренние метаданные git, номера в этих выходных данных соответствуют хеш-идентификаторам версий объектов git
В следующих двух строках выводятся обозначения изменений
В пятой строке заголовок врагмента, заголовок визуально описывает изменения в файле: В нашем случае было извлечено 8 строк начиная со строки 7, после извлечения было добавлено 8 строк начиная с 8
Остальное содержимое фрагмента сравнения — это недавние изменения. Каждой измененной строке предшествует символ + или -, указывающий на источник входных данных сравнения. + для b/main.cpp и - для a/main.cpp
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~5 HEAD~1
diff --git a/main.cpp b/main.cpp
index b4392ec..8435233 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,6 +4,9 @@ using namespace std;
int main()
{
- cout << "Hello world!" << endl;
- return 0;
+ cout << "Enter A and B: ";
+ int a, b;
+ cin >> a >> b;
+ cout << "A + B = " << a + b << '\n'
+ << "A - B = " << a - b << '\n';
}
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>
(END)
19. Коммит произведения и откат изменений:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "code: вывод произведения"
[main 997d912] code: вывод произведения
1 file changed, 2 insertions(+), 1 deletion(-)
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at 6a362f0 git: игнорирование файлов
20. Добавлю комментарий в программу и откачу изменения:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m 'code: комментарий'
[main b89482c] code: комментарий
1 file changed, 1 insertion(+), 1 deletion(-)
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout HEAD -- main.cpp
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at 6a362f0 git: игнорирование файлов
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 6a362f0 (HEAD -> main) git: игнорирование файлов
* 546e058 code: вывод разности
* 88c5c69 code: вывод суммы
* 2b8ab7b code: первое изменение
* c41f6c7 build: добавлен файл проекта
* c52bc42 code: заготовка программы
21. Зарегестрировался на сервере и создал ключи:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/sanya/.ssh/id_ed25519):
/c/Users/sanya/.ssh/id_ed25519 already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/sanya/.ssh/id_ed25519
Your public key has been saved in /c/Users/sanya/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:J9ulN6EA6cfydpJ0zdhN8HhG0esOJOTkOxY6Wat4j8Y sanya@DESKTOP-M9EDCFL
The key's randomart image is:
+--[ED25519 256]--+
| . oo |
| . o = .|
| o = . = .|
| . o @ * . |
| o S B % o |
| = % O o . |
| O O + o |
| o E.. . . |
| o... |
+----[SHA256]-----+
22. Запустил агента и дал доступ к ключам:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ eval $(ssh-agent -s)
Agent pid 1610
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ ssh-add
Enter passphrase for /c/Users/sanya/.ssh/id_ed25519:
Identity added: /c/Users/sanya/.ssh/id_ed25519 (sanya@DESKTOP-M9EDCFL)
23. Подключился к репозиторию по SSH - не вышло, подключаюсь по HTTP:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git remote add origin http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push -u origin main
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 4 threads
Compressing objects: 100% (16/16), done.
Writing objects: 100% (18/18), 2.31 KiB | 395.00 KiB/s, done.
Total 18 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
24. Открыл git bush в каталоге боба и скопировал проект. После отредактировал профиль боба
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ git clone http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git project
Cloning into 'project'...
remote: Enumerating objects: 18, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 18 (delta 2), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (18/18), done.
Resolving deltas: 100% (2/2), done.
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd project
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.name 'Bob (AntonovichAN)'
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.email 'AntonovichAN@mpei.ru'
25. Добавил вывод произведения и сделал коммит:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git add main.cpp
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -m 'code: печать произведения'
[main e1c9396] code: печать произведения
1 file changed, 2 insertions(+), 1 deletion(-)
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* e1c9396 (HEAD -> main) code: печать произведения
* 6a362f0 (origin/main, origin/HEAD) git: игнорирование файлов
* 546e058 code: вывод разности
* 88c5c69 code: вывод суммы
* 2b8ab7b code: первое изменение
* c41f6c7 build: добавлен файл проекта
* c52bc42 code: заготовка программы
26. Отправил коммит на сервер:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 417 bytes | 417.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git
6a362f0..e1c9396 main -> main
27. В каталоге Алисы выполнил загрузку изменений:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git fetch
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 397 bytes | 39.00 KiB/s, done.
From http://uit.mpei.ru/git/AntonovichAN/cs-lab02
6a362f0..e1c9396 main -> origin/main
В рабочей копии изменений еще не произошло
28. Просмотрел историю всех веток:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* e1c9396 (origin/main) code: печать произведения
* 6a362f0 (HEAD -> main) git: игнорирование файлов
* 546e058 code: вывод разности
* 88c5c69 code: вывод суммы
* 2b8ab7b code: первое изменение
* c41f6c7 build: добавлен файл проекта
* c52bc42 code: заготовка программы
29. Продвинул ветку main к версии на сервере:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git pull --ff-only
Updating 6a362f0..e1c9396
Fast-forward
main.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* e1c9396 (HEAD -> main, origin/main) code: печать произведения
* 6a362f0 git: игнорирование файлов
* 546e058 code: вывод разности
* 88c5c69 code: вывод суммы
* 2b8ab7b code: первое изменение
* c41f6c7 build: добавлен файл проекта
* c52bc42 code: заготовка программы
30. Делаю обратные действия только от имени Алисы:
вписал в программу печать деления, сделал коммит и отправил на сервер
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m 'code: печать деления'
[main f4d8519] code: печать деления
1 file changed, 2 insertions(+), 1 deletion(-)
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 409 bytes | 409.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git
e1c9396..f4d8519 main -> main
31. От имени Боба:
$ git fetch
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 389 bytes | 27.00 KiB/s, done.
From http://uit.mpei.ru/git/AntonovichAN/cs-lab02
e1c9396..f4d8519 main -> origin/main
В рабочей копии изменений еще не произошло
32. Просмотрел историю всех веток и продвинул ветку main к версии на сервере:
$ git log --oneline --decorate --all --graph
* 316accc (origin/main, origin/HEAD) code: вывод деления
* 5c3930e (HEAD -> main) code: печать произведения
* 7271cff git: игнорирование файлов
* 6b53fb2 code: вывод разности
* c4242e9 code: вывод суммы
* d026106 code: первое изменение
* 64dd879 build: добавлен файл проекта
* e1a7a5b code: заготовка программы
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git pull --ff-only
Updating e1c9396..f4d8519
Fast-forward
main.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* f4d8519 (HEAD -> main, origin/main, origin/HEAD) code: печать деления
* e1c9396 code: печать произведения
* 6a362f0 git: игнорирование файлов
* 546e058 code: вывод разности
* 88c5c69 code: вывод суммы
* 2b8ab7b code: первое изменение
* c41f6c7 build: добавлен файл проекта
* c52bc42 code: заготовка программы
33. «На машине Алисы» дополнил программу вывода максимума, сделал коммит и отправил на сервер.
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m 'code: печать максимума'
[main 8c0136e] code: печать максимума
1 file changed, 5 insertions(+)
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 418 bytes | 418.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git
f4d8519..8c0136e main -> main
34. «На машине Боба» дополнил программу печатью минимума, сделал коммит и попытался отправить его на сервер.
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -a -m 'code: печать минимума'
[main 9926341] code: печать минимума
1 file changed, 5 insertions(+)
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'http://uit.mpei.ru/git/AntonovichAN/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.
35. Загрузил коммиты из удаленного хранилища и отобразил историю всех веток:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git fetch
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 398 bytes | 22.00 KiB/s, done.
From http://uit.mpei.ru/git/AntonovichAN/cs-lab02
f4d8519..8c0136e main -> origin/main
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING)
$ git log --oneline --decorate --all --graph
* 9926341 (HEAD -> main) code: печать минимума
| * 8c0136e (origin/main, origin/HEAD) code: печать максимума
|/
* f4d8519 code: печать деления
* e1c9396 code: печать произведения
* 6a362f0 git: игнорирование файлов
* 546e058 code: вывод разности
* 88c5c69 code: вывод суммы
* 2b8ab7b code: первое изменение
* c41f6c7 build: добавлен файл проекта
* c52bc42 code: заготовка программы
36. Попытался переместить коммит Боба поверх коммита Алисы.
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING)
$ git rebase origin/main
Auto-merging main.cpp
CONFLICT (content): Merge conflict in main.cpp
error: could not apply 9926341... 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 advice.mergeConflict false"
Could not apply 9926341... code: печать минимума
37. Проверил статус.
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING)
$ git status
interactive rebase in progress; onto 8c0136e
Last command done (1 command done):
pick 9926341 code: печать минимума
No commands remaining.
You are currently rebasing branch 'main' on '8c0136e'.
(fix conflicts and then run "git rebase --continue")
(use "git rebase --skip" to skip this patch)
(use "git rebase --abort" to check out the original branch)
Unmerged paths:
(use "git restore --staged <file>..." to unstage)
(use "git add <file>..." to mark resolution)
both modified: main.cpp
Untracked files:
(use "git add <file>..." to include in what will be committed)
main.exe
main.o
no changes added to commit (use "git add" and/or "git commit -a")
сатус выводит, что сейчас выполняется rebase c коммитом(печаь максимума) и выдает предупреждение о том, что произошло расхождение текущей ветки и ветки на сервере и предлагает пути решения проблемы
38. Изменил код и продолжил операцию rebase:
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING)
$ git add main.cpp
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING)
$ git rebase origin/main
fatal: It seems that there is already a rebase-merge directory, and
I wonder if you are in the middle of another rebase. If that is the
case, please try
git rebase (--continue | --abort | --skip)
If that is not the case, please
rm -fr ".git/rebase-merge"
and run me again. I am stopping in case you still have something
valuable there.
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|MERGING)
$ git rebase --continue
code: печать минимума
# Conflicts:
# main.cpp
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# interactive rebase in progress; onto 8c0136e
# Last command done (1 command done):
# pick 9926341 code: печать минимума
# No commands remaining.
# You are currently rebasing branch 'main' on '8c0136e'.
#
# Changes to be committed:
# modified: main.cpp
#
# Untracked files:
# main.exe
# main.o
Сделал коммит и продолжил операцию rebase
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|REBASE 1/1)
$ git commit -a -m 'code: печать минимума'
[detached HEAD ae118a9] code: печать минимума
1 file changed, 5 insertions(+)
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|REBASE 1/1)
$ git rebase --continue
Successfully rebased and updated refs/heads/main.
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline
ae118a9 (HEAD -> main) code: печать минимума
8c0136e (origin/main, origin/HEAD) code: печать максимума
f4d8519 code: печать деления
e1c9396 code: печать произведения
6a362f0 git: игнорирование файлов
546e058 code: вывод разности
88c5c69 code: вывод суммы
2b8ab7b code: первое изменение
c41f6c7 build: добавлен файл проекта
c52bc42 code: заготовка программы
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 393 bytes | 393.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git
8c0136e..ae118a9 main -> main
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline
ae118a9 (HEAD -> main, origin/main, origin/HEAD) code: печать минимума
8c0136e code: печать максимума
f4d8519 code: печать деления
e1c9396 code: печать произведения
6a362f0 git: игнорирование файлов
546e058 code: вывод разности
88c5c69 code: вывод суммы
2b8ab7b code: первое изменение
c41f6c7 build: добавлен файл проекта
c52bc42 code: заготовка программы
39. Изменяю тип данных от лица Алисы.
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git branch double
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'
изменил тип данных в коде
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m 'code: тип double'
[double 89573ea] code: тип double
1 file changed, 1 insertions(+), 1 deletion(-)
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout main
Switched to branch 'main'
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git fetch
~ ~ ~ ~ ~ ~ ~
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git pull
~ ~ ~ ~ ~ ~ ~
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git merge double
[main a00075b] code merge double
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 4 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 696 bytes | 232.00 KiB/s, done.
Total 6 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To http://uit.mpei.ru/git/AntonovichAN/cs-lab02.git
ae118a9..a00075b main -> main
sanya@DESKTOP-M9EDCFL MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline
a00075b (HEAD -> main, origin/main) code merge double
89573ea (double) code: тип double
ae118a9 code: печать минимума
8c0136e code: печать максимума
f4d8519 code: печать деления
e1c9396 code: печать произведения
6a362f0 git: игнорирование файлов
546e058 code: вывод разности
88c5c69 code: вывод суммы
2b8ab7b code: первое изменение
c41f6c7 build: добавлен файл проекта
c52bc42 code: заготовка программы