Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
|
1 год назад | |
---|---|---|
.gitignore | 1 год назад | |
README.txt | 1 год назад | |
main.cpp | 1 год назад | |
project.cbp | 1 год назад |
README.txt
Отчет по лабораторной работе №2 "Система контроля версий Git"
Выполнил: Шинкаренко В. А.
Группа: А-02-23
1. Создала на рабочем столе каталог lab02 и запустила в нем Git Bash:
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02
$
2. Просмотрела файлы в рабочем каталоге, используя команду "ls". Результат: пусто
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02
$ ls
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02
$
3. Создала каталоги Алисы и Боба, в каталоге Алисы создала каталог "project".
Изучила команду "cd"
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02
$ mkdir alice
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02
$ mkdir bob
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02
$ cd bob
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob
$ cd ..
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02
$ cd alice
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice
$ mkdir project
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice
$ cd project
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project
$
4. Инициализировала репозитарий:
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/LENOVO/Desktop/lab02/alice/project/.git/
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)
$
Git создал ветку под названием master, что видно в приглашении терминала.
Так как подсказки для изменения имени не появилось, поменять название ветки я решила позже, после создания первого коммита.
5. Настроила репозитарий Алисы
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)
$ git config user.name 'Alice (ShinkarenkoVA)'
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)
$ git config user.email 'shinkarenkova@mpei.ru'
6. Создала и собрала проект в репозитарии Алисы, затем просмотрела состояние рабочей копии
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)
$ git status
On branch master
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)
Git сообщает, что мы находимся на главной ветке.
Мы видим, что пока не сделано ни одного коммита.
Далее Git перечисляет файлы в репозитарии, изменение в которых пока не отслеживается.
7. Начнем отслеживать файл main.cpp и еще раз просмотрим состояние рабочей копии
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)
$ git add main.cpp
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: main.cpp
Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
obj/
project.cbp
Видим, что Git начал отслеживать изменения в файле main.cpp
8. Выполним первый коммит с этим файлом
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)
$ git commit -m 'code: заготовка программы'
[master (root-commit) 1475f95] code: заготовка программы
1 file changed, 9 insertions(+)
create mode 100644 main.cpp
Здесь я решила поменять название ветки на main
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (master)
$ git branch -m main
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$
9. Занесли файл project.cbp в индекс и выполнили коммит с ним
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add project.cbp
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'build: добавлен файл проетка'
[main 39e0c8c] build: добавлен файл проетка
1 file changed, 40 insertions(+)
create mode 100644 project.cbp
10. Заменили тело функции на ввод двух чисел и просмотрели еще раз состояние репозитария
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: main.cpp
Untracked files:
(use "git add <file>..." to include in what will be committed)
bin/
obj/
Теперь Git отследил изменения и указал файл, в котором эти изменения произошли.
И в отличии от случая, когда создавался новый файл, Git пишет не "new file: ", а "modified: ".
Кроме этого предлагает другую команду, чтобы отменить загрузку.
11. Создала 3 коммита с изменениями разными способами.
а) Закоммитила изменение в теле функции
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: длбавлен ввод двух чисел'
[main d48cf2c] code: длбавлен ввод двух чисел
1 file changed, 3 insertions(+), 2 deletions(-)
б) Добавила вывод суммы этих чисел
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add -u
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: добавлена сумма'
[main 734f5fb] code: добавлена сумма
1 file changed, 1 insertion(+)
в) Добавила вывод разности
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -a -m 'code: добавлена разность'
[main 25143e4] code: добавлена разность
1 file changed, 1 insertion(+)
12. Создала в корне репозитария файл .gitignore, который позволяет Git игнорировать некоторые каталоги, и сделала с ним коммит.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add .gitignore
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'git: добавлено игнорирование файлов'
[main 7d246af] git: добавлено игнорирование файлов
1 file changed, 3 insertions(+)
create mode 100644 .gitignore
13. Просмотрим историю
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --stat
commit 7d246af3e9e749439f33d22d570d3b05b1b755ce (HEAD -> main)
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
Date: Sun Apr 7 19:19:47 2024 +0300
git: добавлено игнорирование файлов
.gitignore | 3 +++
1 file changed, 3 insertions(+)
commit 25143e4c234f2bd80487977386eb15afa27db3c9
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
Date: Sun Apr 7 18:56:37 2024 +0300
code: добавлена разность
main.cpp | 1 +
1 file changed, 1 insertion(+)
commit 734f5fb608db6e5f8e0610d59582a02a697d5584
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
Date: Sun Apr 7 18:54:26 2024 +0300
code: добавлена сумма
Рассмотрим последний коммит. Мы можем видеть информацию о том, кто сделал последний коммит и когда.
Команда также показывает нам сколько файлов было изменено, название файла с изменениями, тему коммита и наш комментарий к нему.
А также количество изменений.
Просмотрим историю с помощью других комманд:
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --grep 'build'
commit 39e0c8ce15c50bb4aed2922172323a934853f589
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
Date: Sun Apr 7 18:39:45 2024 +0300
build: добавлен файл проетка
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log -- project.cbp
commit 39e0c8ce15c50bb4aed2922172323a934853f589
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
Date: Sun Apr 7 18:39:45 2024 +0300
build: добавлен файл проетка
14. Отдельно просмотрим предпоследний коммит.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git show HEAD~1
commit 25143e4c234f2bd80487977386eb15afa27db3c9
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
Date: Sun Apr 7 18:56:37 2024 +0300
code: добавлена разность
diff --git a/main.cpp b/main.cpp
index 778abf0..a392737 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,4 +8,5 @@ int main()
int a, b;
cin >> a >> b;
cout << " A + B = " << a + b << '\n';
+ cout << " A - B = " << a - b << '\n';
}
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git show 25143e4
commit 25143e4c234f2bd80487977386eb15afa27db3c9
Author: Alice (ShinkarenkoVA) <shinkarenkova@mpei.ru>
Date: Sun Apr 7 18:56:37 2024 +0300
code: добавлена разность
diff --git a/main.cpp b/main.cpp
index 778abf0..a392737 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,4 +8,5 @@ int main()
int a, b;
cin >> a >> b;
cout << " A + B = " << a + b << '\n';
+ cout << " A - B = " << a - b << '\n';
}
15. Внесем изменение в программу без выполнения коммита и посмотрим эти изменения
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff
diff --git a/main.cpp b/main.cpp
index a392737..5e034ec 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,9 +4,10 @@ using namespace std;
int main()
{
- cout << "Enter A and B: ";
+ cout << "Enter A and B: " << endl;
int a, b;
cin >> a >> b;
cout << " A + B = " << a + b << '\n';
cout << " A - B = " << a - b << '\n';
+ cout << " A * B = " << a * b << '\n';
}
Сначала Git указывает, что будет сравнивать, затем отображает сколько изменений он обнаружил и в конце указывает сами эти изменения.
Просмотрим изменения между двумя данными коммитами
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git diff HEAD~5 HEAD~1
diff --git a/main.cpp b/main.cpp
index b4392ec..a392737 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';
}
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" ?>
16. Произвела откат изменений 2мя способами
1) Закоммитила вывод произведения, а затем отменим этот коммит.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: добавлено произведение'
[main fa6c80c] code: добавлено произведение
1 file changed, 2 insertions(+), 1 deletion(-)
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at 7d246af git: добавлено игнорирование файлов
2) Добавила комментарий в программу, а затем снова вернулась к последнему коммиту.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git checkout HEAD -- main.cpp
17. Зарегестрировалась на Git УИТ. Затем создала пару ключей и запустила агент, чтобы не вводить ключ каждый раз заново.
Затем добавила ключ в список открытых ключей моей учетной записи.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/LENOVO/.ssh/id_ed25519):
/c/Users/LENOVO/.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/LENOVO/.ssh/id_ed25519
Your public key has been saved in /c/Users/LENOVO/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:PqVxNsabfSwV2JkR7DUfF+/LCLQYjNTaqU65DSeNdS4 LENOVO@DESKTOP-MLIFKLH
The key's randomart image is:
+--[ED25519 256]--+
| .. .oo.|
| . o. o.*+|
| .oo....=.*|
| . =+.. .o.|
| S.Xo . .|
| O E *.oo .|
| o X + o.oo |
| o o o |
| |
+----[SHA256]-----+
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ eval $(ssh-agent -s)
Agent pid 593
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ ssh-add
Enter passphrase for /c/Users/LENOVO/.ssh/id_ed25519:
Identity added: /c/Users/LENOVO/.ssh/id_ed25519 (LENOVO@DESKTOP-MLIFKLH)
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILNxZ2NZmRO53H8KUbNvBsOqkeGGywsMSRv8S7lFfP7Y LENOVO@DESKTOP-MLIFKLH
18. Создала новый репозитарий и настроила связь с удаленным хранилищем.
И так как я работала я не в лаборатории, то для взаимодействия с сервером произвела по протоколу HTTP
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git remote add origin http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2.git
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push -u origin main
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 8 threads
Compressing objects: 100% (16/16), done.
Writing objects: 100% (18/18), 2.36 KiB | 1.18 MiB/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/ShinkarenkoVA/cs-lab02.2.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
19. Открыла терминал Git Bash в каталоге Боба и клонировала туда проект.
А затем перешла в катало project.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob
$ git clone http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2.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.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob
$ cd project
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$
20. Как и в случае с Алисой, настраиваю репозитарий Боба
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.name 'Bob (ShinkarenkoVA)'
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git config user.email 'shinkarenkova@mpei.ru'
21. Добавила печать произведения чисел в программу и сделала коммит от лица Боба.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m 'code: добавили произведение'
[main c19ba2d] code: добавили произведение
1 file changed, 2 insertions(+), 1 deletion(-)
Здесь я убедилась, что коммит выполнен от лица Боба
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git show HEAD
commit c19ba2d2f3720d87bbaae1edc0e0db0f49306766 (HEAD -> main)
Author: Bob (ShinkarenkoVA) <shinkarenkova@mpei.ru>
Date: Sun Apr 7 19:59:54 2024 +0300
code: добавили произведение
diff --git a/main.cpp b/main.cpp
index a392737..5e034ec 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,9 +4,10 @@ using namespace std;
int main()
{
- cout << "Enter A and B: ";
+ cout << "Enter A and B: " << endl;
int a, b;
cin >> a >> b;
cout << " A + B = " << a + b << '\n';
cout << " A - B = " << a - b << '\n';
+ cout << " A * B = " << a * b << '\n';
}
22. Отправила коммит Боба на сервер, а затем выполнила загрузку изменеий на машине у Алисы.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 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 http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2.git
7d246af..c19ba2d main -> main
Загрузка изменений у Алисы
LENOVO@DESKTOP-MLIFKLH 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 | 103.00 KiB/s, done.
From http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2
7d246af..c19ba2d main -> origin/main
23. Просмотрим теперь историю всех веток и увидим, что ветка main Алисы отстает от ветки origin/main на один коммит.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* c19ba2d (origin/main) code: добавили произведение
* 7d246af (HEAD -> main) git: добавлено игнорирование файлов
* 25143e4 code: добавлена разность
* 734f5fb code: добавлена сумма
* d48cf2c code: длбавлен ввод двух чисел
* 39e0c8c build: добавлен файл проетка
* 1475f95 code: заготовка программы
Продвигаем эту ветку к скачанной версии.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git pull --ff-only
Updating 7d246af..c19ba2d
Fast-forward
main.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
24. Проделаем те же шаги о лица Алисы. Добавим в программу печать деления и сделаем коммит.
Затем поучим новую версию у боба.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: добавили деление'
[main 18f885b] code: добавили деление
1 file changed, 5 insertions(+), 1 deletion(-)
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 437 bytes | 437.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/ShinkarenkoVA/cs-lab02.2.git
c19ba2d..18f885b main -> main
У Боба:
LENOVO@DESKTOP-MLIFKLH 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), 417 bytes | 34.00 KiB/s, done.
From http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2
c19ba2d..18f885b main -> origin/main
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git pull --ff-only
Updating c19ba2d..18f885b
Fast-forward
main.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
25. На машине у Алисы добавляем в программу печать максимума, делаем коммит и отправляем на сервер.
На машине у Боба добавлем печать минимума, делаем коммит и тоже пытаемся отправить на сервер.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git add main.cpp
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git commit -m 'code: добавили вывод максимума'
[main 0a9f112] code: добавили вывод максимума
1 file changed, 5 insertions(+)
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 452 bytes | 452.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/ShinkarenkoVA/cs-lab02.2.git
18f885b..0a9f112 main -> main
На машине у Боба:
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git add main.cpp
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git commit -m 'code: добавили вывод минимума'
[main 3918cc6] code: добавили вывод минимума
1 file changed, 5 insertions(+)
При попытке отправить на сервер, выдается ошибка
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
To http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2.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.
26. Разрешение конфликта
От лица Боба загружаю коммиты из удаленного хранилища
LENOVO@DESKTOP-MLIFKLH 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), 432 bytes | 54.00 KiB/s, done.
From http://uit.mpei.ru/git/ShinkarenkoVA/cs-lab02.2
18f885b..0a9f112 main -> origin/main
Просмотрим теперь историю всех веток:
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 3918cc6 (HEAD -> main) code: добавили вывод минимума
| * 0a9f112 (origin/main, origin/HEAD) code: добавили вывод максимума
|/
* 18f885b code: добавили деление
* c19ba2d code: добавили произведение
* 7d246af git: добавлено игнорирование файлов
* 25143e4 code: добавлена разность
* 734f5fb code: добавлена сумма
* d48cf2c code: длбавлен ввод двух чисел
* 39e0c8c build: добавлен файл проетка
* 1475f95 code: заготовка программы
Можно видеть, как ветка main Боба разошлась с главной веткой на сервере.
На машине Боба вношу изменения в файл, чтобы разрешить конфликт.
Выполняю коммит от лица Боба и перемещаю коммит его поверх коммита Алисы.
LENOVO@DESKTOP-MLIFKLH 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 3918cc6... code: добавили вывод минимума
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 3918cc6... code: добавили вывод минимума
Просмотрим состояние хранилища:
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git status
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
(use "git push" to publish your local commits)
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)
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* d0f1b71 (HEAD -> main) code: добавили вывод минимума
* 0a9f112 (origin/main, origin/HEAD) code: добавили вывод максимума
* 18f885b code: добавили деление
* c19ba2d code: добавили произведение
* 7d246af git: добавлено игнорирование файлов
* 25143e4 code: добавлена разность
* 734f5fb code: добавлена сумма
* d48cf2c code: длбавлен ввод двух чисел
* 39e0c8c build: добавлен файл проетка
* 1475f95 code: заготовка программы
Отправила итоговые изменения на сервер.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/bob/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 439 bytes | 439.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/ShinkarenkoVA/cs-lab02.2.git
0a9f112..d0f1b71 main -> main
27. Использование веток
на машине Алисы создала ветку double и переключислась на нее.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git branch double
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'
Затем, добавляю от лица Алисы изменения в программу: изменила тип переменных a и b.
Выполнила коммит.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (double)
$ git add main.cpp
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (double)
$ git commit -m 'code: изменили тип данных a и b'
[double b770b59] code: изменили тип данных a и b
1 file changed, 1 insertion(+), 1 deletion(-)
И снова переключилась на ветку main
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (double)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
Синхронизировала эту ветку с сервером и отправила на сервер.
LENOVO@DESKTOP-MLIFKLH MINGW64 ~/Desktop/lab02/alice/project (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 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/ShinkarenkoVA/cs-lab02.2.git
d0f1b71..1f72fbd main -> main