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

955 строки
37 KiB
Plaintext

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

Отчет по лабораторной работе № 2 "Система контроля версий Git"
Выполнил: Бреган И. М.
Группа: А-01-24
Проверил: Челышев Э.А./Филатов С.А.
Примечание: работа выполнялась на Windows.
1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02
$
2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто:
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02
$ ls
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02
$
3. Создал каталоги Алисы и Боба, создал каталог "project",
изучил команду "cd" в процессе:
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir alice
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir bob
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd bob
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd ..
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd alice
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ mkdir project
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ cd project
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$ cd ..
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ cd project
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$
4. Инициализировал репозитарий:
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/brega/OneDrive/Рабочий стол/lab02/alice/project/.git/
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master)
$ git branch -m main
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ ls -A
.git/
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.name 'Alice (BreganIM)'
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.email 'BreganIM@mpei.ru'
5. Занесение файлов под контроль версий
brega@Ranny 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)
.vs/
project.cpp
project.sln
project.vcxproj
project.vcxproj.filters
project.vcxproj.user
nothing added to commit but untracked files present (use "git add" to track)
------------------------------------------------------------------------------------------------
Отчет: On branch main — Нахожусь на ветке main(основная).
No commits yet — В репозитории пока нет ни одного коммита, то есть я еще не зафиксировал никаких изменений.
Untracked files: — Следующие файлы не отслеживаются Git'ом. Это означает, что они есть в рабочей директории, но не добавлены в индекс.
nothing added to commit but untracked files present (use "git add" to track) — Вывод сообщает, что в репозитории пока нет файлов, добавленных в индекс, но есть не отслеживаемые файлы.
------------------------------------------------------------------------------------------------
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.cpp
brega@Ranny 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: project.cpp
Untracked files:
(use "git add <file>..." to include in what will be committed)
.vs/
project.sln
project.vcxproj
project.vcxproj.filters
project.vcxproj.user
------------------------------------------------------------------------------------------------
Отчет: появилась запись
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: project.cpp
что говорит о том, что мы занесли под Git/начали отслеживать данный файл(project.cpp).
------------------------------------------------------------------------------------------------
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: заготовка программы'
[main (root-commit) 186259e] code: заготовка программы
1 file changed, 20 insertions(+)
create mode 100644 project.cpp
6. Составление сообщений к коммитам
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.sln
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'build: добавлен файл проекта'
[main dd16e29] build: добавлен файл проекта
1 file changed, 31 insertions(+)
create mode 100644 project.sln
7. Создание коммитов с изменениями
brega@Ranny 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: project.cpp
Untracked files:
(use "git add <file>..." to include in what will be committed)
.vs/
project.vcxproj
project.vcxproj.filters
project.vcxproj.user
no changes added to commit (use "git add" and/or "git commit -a")
------------------------------------------------------------------------------------------------
Отчет:появилась пометка modified: project.cpp, что говорит о том что файл project.cpp был изменен(модифицирован)
------------------------------------------------------------------------------------------------
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.cpp
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: добавлен запрос и вывод A и B'
[main 9c8ed0b] code: добавлен запрос и вывод A и B
1 file changed, 5 insertions(+), 13 deletions(-)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.cpp
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: добавлен вывод суммы A и B'
[main 3f4c347] code: добавлен вывод суммы A и B
1 file changed, 2 insertions(+), 1 deletion(-)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.cpp
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: добавлен вывод разности A и B'
[main e5276e7] code: добавлен вывод разности A и B
1 file changed, 2 insertions(+), 1 deletion(-)
8.Игнорирование файлов
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
.vs/
project.vcxproj
project.vcxproj.filters
project.vcxproj.user
nothing added to commit but untracked files present (use "git add" to track)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add .gitignore
warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "git: добавлен .gitignore"
[main 571ebcf] git: добавлен .gitignore
1 file changed, 7 insertions(+)
create mode 100644 .gitignore
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
.vs/
project.vcxproj
project.vcxproj.filters
nothing added to commit but untracked files present (use "git add" to track)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add .gitignore
warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "git: добавлен еще один доп игнор vs" [main 8fbf1f2] git: добавлен еще один доп игнор vs
1 file changed, 2 insertions(+), 1 deletion(-)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
project.vcxproj
project.vcxproj.filters
nothing added to commit but untracked files present (use "git add" to track)
9. Работа с журналом репозитария
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log
commit 8fbf1f234779ac84b77bf597718cfaa232827d7a (HEAD -> main)
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:24:06 2025 +0300
git: добавлен еще один доп игнор vs
commit 571ebcf52f95830c9ba8a519f7daa8f85cddc26f
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:22:02 2025 +0300
git: добавлен .gitignore
commit e5276e73774c0e41eac27f579d4797718b1dce90
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:10:08 2025 +0300
code: добавлен вывод разности A и B
commit 3f4c347d3b560a0dbbad77845f4040315ea3e13b
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:09:16 2025 +0300
code: добавлен вывод суммы A и B
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --stat
commit 8fbf1f234779ac84b77bf597718cfaa232827d7a (HEAD -> main)
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:24:06 2025 +0300
git: добавлен еще один доп игнор vs
.gitignore | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 571ebcf52f95830c9ba8a519f7daa8f85cddc26f
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:22:02 2025 +0300
git: добавлен .gitignore
.gitignore | 7 +++++++
1 file changed, 7 insertions(+)
commit e5276e73774c0e41eac27f579d4797718b1dce90
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:10:08 2025 +0300
code: добавлен вывод разности A и B
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate
8fbf1f2 (HEAD -> main) git: добавлен еще один доп игнор vs
571ebcf git: добавлен .gitignore
e5276e7 code: добавлен вывод разности A и B
3f4c347 code: добавлен вывод суммы A и B
ea3c5c6 code: добавлен запрос A и B
0ea2348 build: добавлен файл проекта
186259e code: заготовка программы
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 8fbf1f2 (HEAD -> main) git: добавлен еще один доп игнор vs
* 571ebcf git: добавлен .gitignore
* e5276e7 code: добавлен вывод разности A и B
* 3f4c347 code: добавлен вывод суммы A и B
* ea3c5c6 code: добавлен запрос A и B
* 0ea2348 build: добавлен файл проекта
* 186259e code: заготовка программы
------------------------------------------------------------------------------------------------
Отчет: в git log --stat для последнего коммита показывает:
commit 8fbf1f234779ac84b77bf597718cfaa232827d7a (HEAD -> main)
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:24:06 2025 +0300
git: добавлен еще один доп игнор vs
.gitignore | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Разбор содержимого:
1) commit 8fbf1f234779ac84b77bf597718cfaa232827d7a
Это уникальный идентификатор (хеш) коммита. Он позволяет однозначно ссылаться на этот коммит в истории.
2) (HEAD -> main)
-HEAD указывает на текущий коммит, в котором находится рабочая копия.
-main означает, что это основная ветка, и данный коммит является последним в ней.
3)Author: Alice (BreganIM) BreganIM@mpei.ru
Автор коммита и его email.
4)Date: Sun Mar 9 20:24:06 2025 +0300
Время создания коммита (локальное время пользователя).
5)git: добавлен еще один доп игнор vs
Краткое описание внесенных изменений.
6).gitignore | 3 ++-
В этом коммите изменен только один файл – .gitignore.
7)1 file changed, 2 insertions(+), 1 deletion(-)
-1 file changed – изменен один файл (.gitignore).
-2 insertions(+) – добавлены две новые строки.
-1 deletion(-) – удалена одна строка.
------------------------------------------------------------------------------------------------
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --grep "build"
commit 0ea2348681447e98d09dd77e27c3a31a7cb1ce69
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 19:56:04 2025 +0300
build: добавлен файл проекта
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log -- project.cpp
commit e5276e73774c0e41eac27f579d4797718b1dce90
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:10:08 2025 +0300
code: добавлен вывод разности A и B
commit 3f4c347d3b560a0dbbad77845f4040315ea3e13b
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:09:16 2025 +0300
code: добавлен вывод суммы A и B
commit ea3c5c660d08b1de1ce79a65c0d5a3ef98990453
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:02:24 2025 +0300
code: добавлен запрос A и B
commit 186259e9b1d023c5ef5be50e56a788d0288ba60b
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 19:55:04 2025 +0300
code: заготовка программы
10. Просмотр коммитов
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show HEAD~1
commit 571ebcf52f95830c9ba8a519f7daa8f85cddc26f
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:22:02 2025 +0300
git: добавлен .gitignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..843c57c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+/bin/
+/obj/
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
\ No newline at end of file
11. Просмотр изменений
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff
diff --git a/project.cpp b/project.cpp
index ff9849a..4e47771 100644
--- a/project.cpp
+++ b/project.cpp
@@ -8,7 +8,8 @@ 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';
}
------------------------------------------------------------------------------------------------
Отчет:
Пояснение компонентов:
1)diff --git a/project.cpp b/project.cpp — изменения в файле project.cpp.
2)index ff9849a..4e47771 100644 — уникальные идентификаторы старой и новой версии файла.
3)--- a/project.cpp / +++ b/project.cpp — обозначение старой и новой версии файла.
4)@@ -8,7 +8,8 @@ int main() — изменения начинаются с 8-й строки, количество строк изменилось с 7 до 8.
5)- (красная строка) показывает удаленную строку.
6)+ (зеленая строка) показывает новую добавленную строку.
------------------------------------------------------------------------------------------------
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1f8ac8e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+/bin/
+/obj/
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+.vs/
\ No newline at end of file
diff --git a/project.cpp b/project.cpp
index ff9849a..4e47771 100644
--- a/project.cpp
+++ b/project.cpp
@@ -8,7 +8,8 @@ int main()
int a, b;
cin >> a >> b;
cout << "A + B = " << a + b << '\n'
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate
8fbf1f2 (HEAD -> main) git: добавлен еще один доп игнор vs
571ebcf git: добавлен .gitignore
e5276e7 code: добавлен вывод разности A и B
3f4c347 code: добавлен вывод суммы A и B
ea3c5c6 code: добавлен запрос A и B
0ea2348 build: добавлен файл проекта
186259e code: заготовка программы
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~2 HEAD~6
diff --git a/project.cpp b/project.cpp
index ff9849a..a60f2ae 100644
--- a/project.cpp
+++ b/project.cpp
@@ -1,14 +1,20 @@
-
+// project.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчиивается выполнение программы.
+//
#include <iostream>
-using namespace std;
+
int main()
{
- cout << "Enter A and B: ";
- int a, b;
- cin >> a >> b;
- cout << "A + B = " << a + b << '\n'
- << "A - B = " << a - b << '\n';
-
+ std::cout << "Hello World!\n";
}
12. Откат изменений
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.cpp
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "Добавлен вывод произведения чисел"
[main cc98020] Добавлен вывод произведения чисел
1 file changed, 2 insertions(+), 1 deletion(-)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at 8fbf1f2 git: добавлен еще один доп игнор vs
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout HEAD -- project.cpp
13. Обмен кодом через удаленное хранилище
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/brega/.ssh/id_ed25519):
Created directory '/c/Users/brega/.ssh'.
Enter passphrase for "/c/Users/brega/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/brega/.ssh/id_ed25519
Your public key has been saved in /c/Users/brega/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:Q4FMNk3TVfmcgK5EjY/v31oSEspiT63IzH1tpSzezb8 brega@Ranny
The key's randomart image is:
+--[ED25519 256]--+
| o+++.o.o... |
| .o..=.o .. |
| o +. .o.|
| ..ooo. .o|
| oS+oo . . |
| = *o..+ + |
| = +.o * . |
| o.+ * |
| ..+.E+|
+----[SHA256]-----+
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ eval $(ssh-agent -s)
Agent pid 1155
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ ssh-add
Enter passphrase for /c/Users/brega/.ssh/id_ed25519:
Identity added: /c/Users/brega/.ssh/id_ed25519 (brega@Ranny)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF/j7ZoWcAPy7kNfJG16sd71/WQ04DLjXoUW4rzEW5kV brega@Ranny
14. Отправка проекта на сервер
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git remote add origin git@uit.mpei.ru:BreganIM/cs-lab02.git
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push -u origin main
The authenticity of host 'uit.mpei.ru (193.233.68.149)' can't be established.
ED25519 key fingerprint is SHA256:Q5w0UKEzQKA3J6NyMtjwCLvtAykoxdugIXjx6NwU4NA.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'uit.mpei.ru' (ED25519) to the list of known hosts.
Enumerating objects: 21, done.
Counting objects: 100% (21/21), done.
Delta compression using up to 12 threads
Compressing objects: 100% (20/20), done.
Writing objects: 100% (21/21), 3.36 KiB | 1.12 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:BreganIM/cs-lab02.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
15.Получение проекта с сервера
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ git clone http://uit.mpei.ru/git/BreganIM/cs-lab02.git project
Cloning into 'project'...
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (20/20), 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.
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd project
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.name 'Bob (BreganIM)'
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.email 'BreganIM@mpei.ru'
16.Совместная работа над проектом без конфликтов правок
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git add project.cpp
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -m 'code: добавлен вывод произведения A и B'
[main 4037858] code: добавлен вывод произведения A и B
1 file changed, 2 insertions(+), 1 deletion(-)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log
commit 4037858ea99714580a993afc9348870b0d4fc025 (HEAD -> main)
Author: Bob (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 21:18:42 2025 +0300
code: добавлен вывод произведения A и B
commit 8fbf1f234779ac84b77bf597718cfaa232827d7a (origin/main, origin/HEAD)
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:24:06 2025 +0300
git: добавлен еще один доп игнор vs
commit 571ebcf52f95830c9ba8a519f7daa8f85cddc26f
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:22:02 2025 +0300
git: добавлен .gitignore
commit e5276e73774c0e41eac27f579d4797718b1dce90
Author: Alice (BreganIM) <BreganIM@mpei.ru>
Date: Sun Mar 9 20:10:08 2025 +0300
code: добавлен вывод разности A и B
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 424 bytes | 424.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/BreganIM/cs-lab02.git
8fbf1f2..4037858 main -> main
brega@Ranny 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), 404 bytes | 134.00 KiB/s, done.
From uit.mpei.ru:BreganIM/cs-lab02
8fbf1f2..4037858 main -> origin/main
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 4037858 (origin/main, origin/HEAD) code: добавлен вывод произведения A и B
* 8fbf1f2 (HEAD -> main) git: добавлен еще один доп игнор vs
* 571ebcf git: добавлен .gitignore
* e5276e7 code: добавлен вывод разности A и B
* 3f4c347 code: добавлен вывод суммы A и B
* ea3c5c6 code: добавлен запрос A и B
* 0ea2348 build: добавлен файл проекта
* 186259e code: заготовка программы
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git pull --ff-only
Updating 8fbf1f2..4037858
Fast-forward
project.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.cpp
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: добавлен вывод деления A и B'
[main eb8cebb] code: добавлен вывод деления A и B
1 file changed, 2 insertions(+), 1 deletion(-)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 413 bytes | 413.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 uit.mpei.ru:BreganIM/cs-lab02.git
4037858..eb8cebb main -> main
brega@Ranny 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), 393 bytes | 56.00 KiB/s, done.
From http://uit.mpei.ru/git/BreganIM/cs-lab02
4037858..eb8cebb main -> origin/main
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* eb8cebb (origin/main, origin/HEAD) code: добавлен вывод деления A и B
* 4037858 (HEAD -> main) code: добавлен вывод произведения A и B
* 8fbf1f2 git: добавлен еще один доп игнор vs
* 571ebcf git: добавлен .gitignore
* e5276e7 code: добавлен вывод разности A и B
* 3f4c347 code: добавлен вывод суммы A и B
* ea3c5c6 code: добавлен запрос A и B
* 0ea2348 build: добавлен файл проекта
* 186259e code: заготовка программы
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git pull --ff-only
Updating 4037858..eb8cebb
Fast-forward
project.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
17.Разрешение конфликтов правок при совместной работе
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add project.cpp
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "code:Добавлена печать максимума"
[main ad29084] code:Добавлена печать максимума
1 file changed, 8 insertions(+)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/brega/.ssh/id_ed25519':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 467 bytes | 467.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 uit.mpei.ru:BreganIM/cs-lab02.git
eb8cebb..ad29084 main -> main
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git add project.cpp
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -m "code:Добавлена печать минимума"
[main a00b5db] code:Добавлена печать минимума
1 file changed, 8 insertions(+)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
To http://uit.mpei.ru/git/BreganIM/cs-lab02.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'http://uit.mpei.ru/git/BreganIM/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.
brega@Ranny 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), 447 bytes | 55.00 KiB/s, done.
From http://uit.mpei.ru/git/BreganIM/cs-lab02
eb8cebb..ad29084 main -> origin/main
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* a00b5db (HEAD -> main) code:Добавлена печать минимума
| * ad29084 (origin/main, origin/HEAD) code:Добавлена печать максимума
|/
* eb8cebb code: добавлен вывод деления A и B
* 4037858 code: добавлен вывод произведения A и B
* 8fbf1f2 git: добавлен еще один доп игнор vs
* e5276e7 code: добавлен вывод разности A и B
* 3f4c347 code: добавлен вывод суммы A и B
* ea3c5c6 code: добавлен запрос A и B
* 0ea2348 build: добавлен файл проекта
* 186259e code: заготовка программы
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git rebase origin/main
Auto-merging project.cpp
CONFLICT (content): Merge conflict in project.cpp
error: could not apply a00b5db... 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 a00b5db... code:Добавлена печать минимума
[detached HEAD cf7773e] code: добавлена печать минимума
1 file changed, 11 insertions(+)
Successfully rebased and updated refs/heads/main.
------------------------------------------------------------------------------------------------
Отчет:
Анализ текущего состояния:
Имеется «разветвлённая» история:
Локальная ветка завершена коммитом с печатью минимума (теперь - cf7773e, до ребейза - a00b5db).
Удалённая ветка содержит коммит с печатью максимума (ad29084).
Линейная история объединяет оба направления, показывая, что изменения происходили параллельно.
Ребейз:
Команда git rebase origin/main попыталась переместить локальные изменения на базу удалённой ветки.
Во время ребейза возник конфликт в файле project.cpp на коммите «Добавлена печать минимума». После разрешения конфликта ребейз завершился успешно, и итоговый коммит получил новый хэш cf7773e.
------------------------------------------------------------------------------------------------
<>
18.Использование веток
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git branch double
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git add project.cpp
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git commit -m "code: double"
[double b6e4380] code: double
1 file changed, 1 insertion(+), 1 deletion(-)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git checkout main
Switched to branch 'main'
Your branch is behind 'origin/main' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git pull --ff-only
Enter passphrase for key '/c/Users/brega/.ssh/id_ed25519':
Updating ad29084..cf7773e
Fast-forward
project.cpp | 11 +++++++++++
1 file changed, 11 insertions(+)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --all
b6e4380 (double) code: double
cf7773e (HEAD -> main, origin/main, origin/HEAD) code:Добавлена печать минимума
ad29084 code:Добавлена печать максимума
eb8cebb code: добавлен вывод деления A и B
4037858 code: добавлен вывод произведения A и B
8fbf1f2 git: добавлен еще один доп игнор vs
571ebcf git: добавлен .gitignore
e5276e7 code: добавлен вывод разности A и B
3f4c347 code: добавлен вывод суммы A и B
ea3c5c6 code: добавлен запрос A и B
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git merge double
Auto-merging project.cpp
Merge made by the 'ort' strategy.
project.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --all --graph
* 55f4fbd (HEAD -> main) Merge branch 'double'
|\
| * b6e4380 (double) code: double
* | cf7773e (origin/main, origin/HEAD) code:Добавлена печать минимума
|/
* ad29084 code:Добавлена печать максимума
* eb8cebb code: добавлен вывод деления A и B
* 4037858 code: добавлен вывод произведения A и B
* 8fbf1f2 git: добавлен еще один доп игнор vs
* 571ebcf git: добавлен .gitignore
* e5276e7 code: добавлен вывод разности A и B
* 3f4c347 code: добавлен вывод суммы A и B
* ea3c5c6 code: добавлен запрос A и B
* 0ea2348 build: добавлен файл проекта
* 186259e code: заготовка программы
brega@Ranny MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/brega/.ssh/id_ed25519':
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 12 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 705 bytes | 705.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 uit.mpei.ru:BreganIM/cs-lab02.git
cf7773e..55f4fbd main -> main