Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
|
2 недель назад | |
---|---|---|
.gitignore | 3 недель назад | |
README.txt | 2 недель назад | |
main.cpp | 2 недель назад | |
project.cbp | 3 недель назад |
README.txt
Отчет по лабораторной работе № 2 "Система контроля версий Git"
Выполнил: Тарасов Е. Е.
Группа: А-03-24
Проверил:
Примечание: работа выполнялась на Windows.
1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$
2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ ls
3. Создал каталоги Алисы и Боба, создал каталог "project",
изучил команду "cd" в процессе:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ mkdir alice
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ mkdir bob
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd alice
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ mkdir project
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project
$ cd ..
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project
4. Инициализировал репозитарий и поменял название ветки с master на main:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/jonny-junior/Desktop/lab02/alice/pr
oject/.git/
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (master)
$ git branch -m main
4.1. Посмотрел что находится в каталоге .git:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ ls -A
.git/
4.2. Настроил репозитарий Алисы, чтобы коммиты были от её имени, а также указал свои данные(имя и почта):
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git config user.name 'Alice (TarasovEE)'
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git config user.email 'TarasovYY@mpei.ru'
5. Создал проекты в CodeBlocks и коммиты, проверил каталог .git/ и другие файлы в папке project:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ ls -A
.git/ bin/ main.cpp obj/ project.cbp
6. Занёс файлы под контроль версий:
6.1 Проверил состояние рабочей версии:
$ 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)
Все файлы в папке project не отслеживаются Git.
6.2. Занёс файл под Git:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
6.3. Проверил состояние рабочей копии:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: main.cpp
Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
obj/
project.cbp
Среди коммитов начал отслеживаться файл main.cpp все остальные файлы, по-прежнему, не отслеживаются.
6.4. Вывел сообщение для заднного коммита:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: заготовка программы'
[main (root-commit) 41192cd] code: заготовка программы
1 file changed, 9 insertions(+)
create mode 100644 main.cpp
7. Составил сообщение к коммитам:
7.1. Занёс файл project.cbp под Git и составил к нему сообщение:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add project.cbp
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touch
es it
Windows вывел сообщение о том, Git хранит этот файл в изменённом виде.
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'build: добавлен файл проекта'
[main 0f9ebab] build: добавлен файл проекта
1 file changed, 40 insertions(+)
create mode 100644 project.cbp
7.2. Проверил состояние рабочей копии:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
obj/
nothing added to commit but untracked files present (use "git add" to track)
На данный момент Git не отслеживает только 2 папки: bin/ и obj/.
8. Создал коммиты с изменениями:
8.1. Проверил состояние репозитория после изменения файла:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: main.cpp
Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
obj/
project.depend
project.layout
no changes added to commit (use "git add" and/or "git commit -a")
Git вывел, что файл main.cpp был изменён и нужно закоммитить изменения.
8.2. Закоммитил изменения в файле тремя способами:
8.2.1. 1 способ:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен ввод и вывод a и b"
[main 22c9b94] code: добавлен ввод и вывод a и b
1 file changed, 3 insertions(+), 2 deletions(-)
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод суммы a и b"
[main 631ff69] code: добавлен вывод суммы a и b
1 file changed, 1 insertion(+)
8.2.2. 2 способ:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add -u
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод разности a и b"
[main 0b83a40] code: добавлен вывод разности a и b
1 file changed, 1 insertion(+)
8.2.3. 3 способ:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -a -m "code: добавлен вывод разности a и b"
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
obj/
project.depend
project.layout
nothing added to commit but untracked files present (use "git add" to track)
Во время использования 3 способа я не вносил никаких изменений, так как это не трбовалось в лабораторной.
9. Игнорирование файлов:
9.1. Проверил состояние репозитория после создания файла .gitignore и внесения туда папки bin:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
obj/
project.depend
project.layout
nothing added to commit but untracked files present (use "git add" to track)
Файл bin отсутствует в списке неотслоеживаемых, вместо него появился файл gitignore.
9.2. Проверил состояние репозитоия после внесения в gitignore файлов obj и *.layout:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
project.depend
nothing added to commit but untracked files present (use "git add" to track)
Остались только два файла.
9.3. Создал коммит с gitignore и проверил репозитарий после этого:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add .gitignore
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'git: игнорирование файлов'
[main 88be7b4] git: игнорирование файлов
1 file changed, 3 insertions(+)
create mode 100644 .gitignore
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
project.depend
nothing added to commit but untracked files present (use "git add" to track)
10. Просмотрел историю:
10.1. Открыл журнал репозитария:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log
commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (HEAD -> main)
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 15:00:44 2025 +0300
git: игнорирование файлов
commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:39:48 2025 +0300
code: добавлен вывод разности a и b
commit 631ff69bda317d762f70971303beff1e2b75c1e9
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:34:35 2025 +0300
code: добавлен вывод суммы a и b
commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:25:02 2025 +0300
code: добавлен ввод и вывод a и b
10.2. Посмотрел файлы, изменённые в коммитах:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --stat
commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (HEAD -> main)
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 15:00:44 2025 +0300
git: игнорирование файлов
.gitignore | 3 +++
1 file changed, 3 insertions(+)
commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:39:48 2025 +0300
code: добавлен вывод разности a и b
main.cpp | 1 +
1 file changed, 1 insertion(+)
commit 631ff69bda317d762f70971303beff1e2b75c1e9
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:34:35 2025 +0300
code: добавлен вывод суммы a и b
10.3. Посмотрел коммиты компактно:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate
88be7b4 (HEAD -> main) git: игнорирование файлов
0b83a40 code: добавлен вывод разности a и b
631ff69 code: добавлен вывод суммы a и b
22c9b94 code: добавлен ввод и вывод a и b
0f9ebab build: добавлен файл проекта
41192cd code: заготовка программы
10.4. Посмотрел коммиты для всех веток:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 88be7b4 (HEAD -> main) git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы
10.5. Посмотрел коммиты, связанные с main.cpp:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log -- main.cpp
commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:39:48 2025 +0300
code: добавлен вывод разности a и b
commit 631ff69bda317d762f70971303beff1e2b75c1e9
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:34:35 2025 +0300
code: добавлен вывод суммы a и b
commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:25:02 2025 +0300
code: добавлен ввод и вывод a и b
commit 41192cddf652cbda07756d971ae8cac2bb021bb5
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sat Apr 5 18:01:31 2025 +0300
code: заготовка программы
10.6. Посмотрел коммиты с "code" в сообщении:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --grep "code:"
commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:39:48 2025 +0300
code: добавлен вывод разности a и b
commit 631ff69bda317d762f70971303beff1e2b75c1e9
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:34:35 2025 +0300
code: добавлен вывод суммы a и b
commit 22c9b94f7fa567cb161ee1b92fb527b8488bf8a7
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:25:02 2025 +0300
code: добавлен ввод и вывод a и b
commit 41192cddf652cbda07756d971ae8cac2bb021bb5
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sat Apr 5 18:01:31 2025 +0300
code: заготовка программы
10.6. Посмторел поледний коммит:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git show HEAD
commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (HEAD -> main)
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 15:00:44 2025 +0300
git: игнорирование файлов
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d85abef
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/bin
+/obj
+/*.layout
10.7. Внёс изменения в последний коммит, и посмторел их:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff
diff --git a/main.cpp b/main.cpp
index e84d77b..8d75565 100644
--- a/main.cpp
+++ b/main.cpp
@@ -9,4 +9,5 @@ int main()
cin >> a >> b;
cout << "A + B = " << a + b << '\n';
cout << "A - B = " << a - b << '\n';
+ cout << "A * B = " << a * b << '\n';
}
10.8. Посмотрел изменения между первым и последним коммитом:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff HEAD~5 HEAD
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d85abef
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/bin
+/obj
+/*.layout
diff --git a/main.cpp b/main.cpp
index b4392ec..e84d77b 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';
+ cout << "A - B = " << a - b << '\n';
}
10.9. Закоммитил вывод произведения:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод суммы a и b"
[main a3b52ea] code: добавлен вывод суммы a и b
1 file changed, 1 insertion(+)
10.10. Откатил изменения и потом вернул их:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at 88be7b4 git: игнорирование файлов
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git checkout HEAD -- main.cpp
11. Отпарвка проекта на сервер:
11.1. Создал ключ:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/jonny-junior/.ssh/id_ed25519):
Enter passphrase for "/c/Users/jonny-junior/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/jonny-junior/.ssh/id_ed25519
Your public key has been saved in /c/Users/jonny-junior/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:Wf67BiCbAaN+EPe47aY0c/pRgFDn39cP9UIcHG093mY jonny-junior@DESKTOP-HPH6RBV
The key's randomart image is:
+--[ED25519 256]--+
| ... . .oo.|
| ..++ ..o+|
| +.=o . +.+|
| o . +o.= o oE|
| . . o =S.o . +o.|
| . o +. .o + |
| .+.o .. .|
| . =o. .. |
| o+. .o. |
+----[SHA256]-----+
11.2. Запустил агент и загрузил ключ:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ eval $(ssh-agent -s)
Agent pid 2004
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ ssh-add
Enter passphrase for /c/Users/jonny-junior/.ssh/id_ed25519:
Identity added: /c/Users/jonny-junior/.ssh/id_ed25519 (jonny-junior@DESKTOP-HPH6RBV)
11.3. Отобразил для проверки открытый ключ:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEhmtVfaNrRl2RQcfj1yfK9qV4fuIhfpyxzQn+tE3P6N jonny-junior@DESKTOP-HPH6RBV
11.4. Отправил проект на сервер:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git remote add origin git@uit.mpei.ru:TarasovYY/cs-lab02.git
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/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: 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.35 KiB | 401.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 uit.mpei.ru:TarasovYY/cs-lab02.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
11.5. Получил адрес и каталог:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git remote -v
origin git@uit.mpei.ru:TarasovYY/cs-lab02.git (fetch)
origin git@uit.mpei.ru:TarasovYY/cs-lab02.git (push)
Необходимо было получить их, так как заранее я их не знал.
11.6. Перешёл в каталог Боба и получил проект с сервера:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ cd ..
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd ..
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd bob
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ git clone git@uit.mpei.ru:TarasovYY/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.
11.7. Перешёл в каталог project и настроил Git Боба:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ cd project
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.name 'Bob (TarasovEE)'
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.email 'TarasovYY@mpei.ru'
11.8. От лица Боба добавил изменения в файл(вывод произведения) и закоммитил их:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m "code: добавлен вывод произведения a и b"
[main 130ff05] code: добавлен вывод произведения a и b
1 file changed, 1 insertion(+)
11.9. Прверил, что изменения были именно от лица Боба:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --stat
commit 130ff0511696137c69cd5b57ada65544f31c8651 (HEAD -> main)
Author: Bob (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 13 21:09:39 2025 +0300
code: добавлен вывод произведения a и b
main.cpp | 1 +
1 file changed, 1 insertion(+)
commit 88be7b47050d8d9938397ca821ac42ecc1c64925 (origin/main, origin/HEAD)
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 15:00:44 2025 +0300
git: игнорирование файлов
.gitignore | 3 +++
1 file changed, 3 insertions(+)
commit 0b83a40305a7ebb3d879c5c9cdf67effcdb66de1
Author: Alice (TarasovEE) <TarasovYY@mpei.ru>
Date: Sun Apr 6 10:39:48 2025 +0300
code: добавлен вывод разности a и b
12. Совместная работа над проектом без конфликтов и правок:
12.1. Отправил коммит Боба на сервер:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/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), 435 bytes | 435.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:TarasovYY/cs-lab02.git
88be7b4..130ff05 main -> main
12.2. Перешёл в каталог Алисы и загрузил изменения:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ cd ..
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ cd ..
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd alice
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git fetch
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 415 bytes | 6.00 KiB/s, done.
From uit.mpei.ru:TarasovYY/cs-lab02
88be7b4..130ff05 main -> origin/main
12.3. Проверил на соответствие рабочие копии Алисы и Боба:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 130ff05 (origin/main, origin/HEAD) code: добавлен вывод произведения a и
b
* 88be7b4 (HEAD -> main) git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы
Ветка main отстаёт от ветки origin/main на один коммит.
12.4. Продвинул ветку на один коммит:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git pull --ff-only
Updating 88be7b4..130ff05
Fast-forward
main.cpp | 1 +
1 file changed, 1 insertion(+)
Ещё раз проверил истрию веток:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 130ff05 (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод пр
оизведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы
Теперь ветка не отстаёт.
12.5. Добавил изменения(вывод деления) и закоммитил их:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод деления a и b"
[main 1a0469d] code: добавлен вывод деления a и b
1 file changed, 1 insertion(+)
12.6. Снова проверил историю ветки:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 1a0469d (HEAD -> main) code: добавлен вывод деления a и b
* 130ff05 (origin/main, origin/HEAD) code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы
origin/main отстаёт от main.
12.7. Загрузил изменеия на сервер:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/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), 421 bytes | 421.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:TarasovYY/cs-lab02.git
130ff05..1a0469d main -> main
12.8. Зашёл в каталог Боба и загрузил изменеия с сервера:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ cd ..
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd ..
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd bob
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ cd project
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/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), 401 bytes | 3.00 KiB/s, done.
From uit.mpei.ru:TarasovYY/cs-lab02
130ff05..1a0469d main -> origin/main
12.9. Проверил историю веток:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 1a0469d (origin/main, origin/HEAD) code: добавлен вывод деления a и b
* 130ff05 (HEAD -> main) code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы
Ветка main отстаёт от ветки origin/main.
12.10. Продвинул ветку и проверил историю:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git pull --ff-only
Updating 130ff05..1a0469d
Fast-forward
main.cpp | 1 +
1 file changed, 1 insertion(+)
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 1a0469d (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод деления a и b
* 130ff05 code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы
Теперь положения веток совпадают.
13. Разрешение конфликтов правок при совместной работе:
13.1. Перешёл в каталог Алисы и добавил вывод максимума и отправил его на сервер:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd alice
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод максимума"
[main 9e7f23c] code: добавлен вывод максимума
1 file changed, 4 insertions(+)
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
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), 447 bytes | 223.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:TarasovYY/cs-lab02.git
1a0469d..9e7f23c main -> main
13.2. Добавил переход на следующую строку:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd alice
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m "code: добавлен вывод максимума и переход на следущую строку"
[main febb8eb] code: добавлен вывод максимума и переход на следущую строку
1 file changed, 2 insertions(+), 2 deletions(-)
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
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), 446 bytes | 446.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:TarasovYY/cs-lab02.git
9e7f23c..febb8eb main -> main
13.3. Перешёл в каталог Боба и добавил вывод минимума, после чего отправил его на сервер:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ cd ..
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd ..
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd bob
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ cd project
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m "code: добавлен вывод минимума"
[main f992b5a] code: добавлен вывод минимума
1 file changed, 4 insertions(+)
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
To uit.mpei.ru:TarasovYY/cs-lab02.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'uit.mpei.ru:TarasovYY/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.
Из-за расхождения версий Алисы и Боба, это не удалось сделать.
13.3. От лица Боба загрузил коммиты:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git fetch
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), 818 bytes | 2.00 KiB/s, done.
From uit.mpei.ru:TarasovYY/cs-lab02
1a0469d..febb8eb main -> origin/main
13.4. Попытался перенести коммит Боба вверх:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git rebase origin/main
Auto-merging main.cpp
CONFLICT (content): Merge conflict in main.cpp
error: could not apply f992b5a... 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 f992b5a... code: добавлен вывод минимума
Не удалось это сделать, так как версия Боба расходится с версией Алисы:
13.5. Изменил код и закоммитил его, после чего продолжил перемещение:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m "code: добавлен вывод минимума и максимума"
[detached HEAD b17bfa6] code: добавлен вывод минимума и максимума
1 file changed, 4 insertions(+)
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
$ git rebase --continue
Successfully rebased and updated refs/heads/main.
13.6. отправил изменения на сервер:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
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), 434 bytes | 434.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:TarasovYY/cs-lab02.git
febb8eb..b17bfa6 main -> main
13.7. Посмотрел историю веток:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* b17bfa6 (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод минимума
и максимума
* febb8eb code: добавлен вывод максимума и переход на следущую строку
* 9e7f23c code: добавлен вывод максимума
* 1a0469d code: добавлен вывод деления a и b
* 130ff05 code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы
14. Оспользование веток:
14.1. Перешёл в каталог Алисы, добавил ветку double и переключился на неё:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob/project (main)
$ cd ..
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/bob
$ cd ..
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02
$ cd alice
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice
$ cd project
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git branch double
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'
14.2. Закоммитил изменения целочисленного типа на вещественный:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (double)
$ git add main.cpp
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (double)
$ git commit -m "code: тип переменных изменён на вещественный"
[double 58b7444] code: тип переменных изменён на вещественный
1 file changed, 1 insertion(+), 1 deletion(-)
14.3. Переключился на ветку main и проверил историю веток:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (double)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 58b7444 (double) code: тип переменных изменён на вещественный
* febb8eb (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод максимум
а и переход на следущую строку
* 9e7f23c code: добавлен вывод максимума
* 1a0469d code: добавлен вывод деления a и b
* 130ff05 code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы
Ветки расходятся.
14.4. Слил веткку double c main:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git merge double
Updating febb8eb..58b7444
Fast-forward
main.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main|MERGING)
$ git log --oneline --decorate --all --graph
* 58b7444 (HEAD -> main, double) code: тип переменных изменён на вещественный
| * b17bfa6 (origin/main, origin/HEAD) code: добавлен вывод минимума и максимума
|/
* febb8eb code: добавлен вывод максимума и переход на следущую строку
* 9e7f23c code: добавлен вывод максимума
* 1a0469d code: добавлен вывод деления a и b
* 130ff05 code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы
14.5. Создал коммит и отправил его на сервер:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main|MERGING)
$ git add main.cpp
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main|MERGING)
$ git commit -m "#code: слияние веток"
[main 7ff6a9d] #code: слияние веток
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/jonny-junior/.ssh/id_ed25519':
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), 778 bytes | 778.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:TarasovYY/cs-lab02.git
b17bfa6..7ff6a9d main -> main
14.6. Проверил историю веток:
jonny-junior@DESKTOP-HPH6RBV MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 7ff6a9d (HEAD -> main, origin/main, origin/HEAD) #code: слияние веток
|\
| * b17bfa6 code: добавлен вывод минимума и максимума
* | 58b7444 (double) code: тип переменных изменён на вещественный
|/
* febb8eb code: добавлен вывод максимума и переход на следущую строку
* 9e7f23c code: добавлен вывод максимума
* 1a0469d code: добавлен вывод деления a и b
* 130ff05 code: добавлен вывод произведения a и b
* 88be7b4 git: игнорирование файлов
* 0b83a40 code: добавлен вывод разности a и b
* 631ff69 code: добавлен вывод суммы a и b
* 22c9b94 code: добавлен ввод и вывод a и b
* 0f9ebab build: добавлен файл проекта
* 41192cd code: заготовка программы
Всё сошлось.