Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
807 строки
29 KiB
Plaintext
807 строки
29 KiB
Plaintext
Отчет по лабораторной работе № 2 "Система контроля версий Git"
|
|
|
|
Выполнил: Жалнин В.Ю.
|
|
Группа: А-01-22
|
|
Проверил:
|
|
|
|
Примечание: работа выполнялась на Windows.
|
|
|
|
1) Создал на рабочем столе каталог lab02.02 и запустил в нем Git Bash, приглашение:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02
|
|
$
|
|
|
|
2) Просмотрел файлы в рабочем каталоге командой "ls" - пусто:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02
|
|
$ ls
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02
|
|
$
|
|
|
|
3) Создал каталоги Алисы и Боба, создал каталог "project",
|
|
изучил команду "cd" в процессе:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02
|
|
$ mkdir alice
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02
|
|
$ mkdir bob
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02
|
|
$ cd alice
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice
|
|
$ mkdir project
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project
|
|
$ cd ..
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project
|
|
$
|
|
|
|
4) Инициализировал репозитарий, изменил имя ветки и через команду ls -A увидел его наличие:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project
|
|
$ git init
|
|
Initialized empty Git repository in C:/Users/ПК/Desktop/lab02/alice/project/.git/
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git branch -m main
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$
|
|
|
|
5) Настроил репозитарий, чтобы коммиты были от моего имени:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git config user.name 'Alice (ZhalninVY)'
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git config user.email 'ZhalninVY@mpei.ru'
|
|
|
|
|
|
6) Запустил CodeBlocks и создал проект в репозитарии Алисы:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
|
|
On branch main
|
|
|
|
No commits yet (нет файлов для коммита)
|
|
|
|
Untracked files: (В рабочей копии замечен файл, но Git его не отслеживает.)
|
|
(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)
|
|
|
|
7) Заношу файл main.cpp под Git
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
8) Закомитил файл main.cpp и короткое сообщение (в одинарных или двойных ковычках):
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: заготовка программы'
|
|
[main (root-commit) 70a6613] code: заготовка программы
|
|
1 file changed, 9 insertions(+)
|
|
create mode 100644 main.cpp
|
|
|
|
|
|
9) Добавил файл project.cbp в индекс, закомитил его с комментарием:
|
|
|
|
ПК@DESKTOP-NNUUA3R 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
|
|
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'build: добавлен файл проекта'
|
|
[main e80d54b] build: добавлен файл проекта
|
|
1 file changed, 40 insertions(+)
|
|
create mode 100644 project.cbp
|
|
|
|
|
|
10) Использование команды $ git status после изменения файла main.cpp:
|
|
|
|
ПК@DESKTOP-NNUUA3R 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/
|
|
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
При сравнении случаев, когда добавлялся новый файл, и когда изменился существующий, можно заметить, что
|
|
в случае, когда файл был изменен после добавления в индекс, изменения необходимо закомитить отдельно.
|
|
|
|
11) 1 способ закомитить изменения:
|
|
|
|
Выбрать файлы, изменения которых должны войти в коммит, затем сделать коммит:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: добавлен ввод двух чисел'
|
|
[main 1036577] code: добавлен ввод двух чисел
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
|
|
12) 2 способ закомитить изменения:
|
|
|
|
Добавить в индекс все изменения, затем сделать коммит:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add -u
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: добавлен вывод суммы'
|
|
[main cdfe6e6] code: добавлен вывод суммы
|
|
1 file changed, 1 insertion(+)
|
|
|
|
|
|
13) 3 способ закомитить изенения:
|
|
|
|
Добавить все изменения в индекс и сделать коммит в один шаг:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -a -m 'code: добавлен вывод разности'
|
|
[main 00a04ef] code: добавлен вывод разности
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
Удобен когда коммит меняет уже существующий файл.
|
|
|
|
14) Игнорирование файлов:
|
|
|
|
Создаем файл в codeblocks с подпись /bin, /obj и /project.layout в разных строках
|
|
|
|
ПК@DESKTOP-NNUUA3R 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
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
|
|
Как можно заметить, бинарные файлы bin, obj и project.layout пропали.
|
|
|
|
Закомитим файл игнорирования:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add .gitignore
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'git: добавлен файл игнорирования'
|
|
[main 0b0f71a] git: добавлен файл игнорирования
|
|
1 file changed, 3 insertions(+)
|
|
create mode 100644 .gitignore
|
|
|
|
|
|
15) Просмотрел коммиты репозитария:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --stat
|
|
commit 0b0f71a0b032c71d9996df35ffc6b42336bcbe0c (HEAD -> main)
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:19:42 2023 +0300
|
|
|
|
git: добавлен файл игнорирования
|
|
|
|
.gitignore | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:12:59 2023 +0300
|
|
|
|
code: добавлен вывод разности
|
|
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
commit cdfe6e61aa8d95bcae4bddabd20581bfbca09f49
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:12:11 2023 +0300
|
|
|
|
code: добавлен вывод суммы
|
|
|
|
main.cpp | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
commit 10365779994a810cb539361509747a5832e596fb
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:11:14 2023 +0300
|
|
|
|
code: добавлен ввод двух чисел
|
|
|
|
main.cpp | 6 ++++--
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
commit e80d54bbefde66975d12337c80b3b55975a986f3
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:07:26 2023 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 40 insertions(+)
|
|
|
|
commit 70a6613e8627d6238d356e93413ed72351145cb5
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:06:22 2023 +0300
|
|
|
|
code: заготовка программы
|
|
|
|
main.cpp | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate
|
|
0b0f71a (HEAD -> main) git: добавлен файл игнорирования
|
|
00a04ef code: добавлен вывод разности
|
|
cdfe6e6 code: добавлен вывод суммы
|
|
1036577 code: добавлен ввод двух чисел
|
|
e80d54b build: добавлен файл проекта
|
|
70a6613 code: заготовка программы
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 0b0f71a (HEAD -> main) git: добавлен файл игнорирования
|
|
* 00a04ef code: добавлен вывод разности
|
|
* cdfe6e6 code: добавлен вывод суммы
|
|
* 1036577 code: добавлен ввод двух чисел
|
|
* e80d54b build: добавлен файл проекта
|
|
* 70a6613 code: заготовка программы
|
|
|
|
|
|
Поиск коммита, затрагивающий project.cbp:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log -- project.cbp
|
|
commit e80d54bbefde66975d12337c80b3b55975a986f3
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:07:26 2023 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
|
|
Поиск коммита, название которого имеет тему "build:" :
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --grep "build:"
|
|
commit e80d54bbefde66975d12337c80b3b55975a986f3
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:07:26 2023 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
|
|
16) Просмотр журнала:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show HEAD
|
|
commit 0b0f71a0b032c71d9996df35ffc6b42336bcbe0c (HEAD -> main)
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:19:42 2023 +0300
|
|
|
|
git: добавлен файл игнорирования
|
|
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..4d72a82
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,3 @@
|
|
+/bin
|
|
+/obj
|
|
+/project.layout
|
|
|
|
|
|
|
|
17) Просмотр коммитов (предпоследнего коммита):
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show HEAD~1
|
|
commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:12:59 2023 +0300
|
|
|
|
code: добавлен вывод разности
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 1967dd8..2d3e243 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,6 +7,7 @@ int main()
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
- cout << "A + B = " << a + b << '\n';
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
|
|
}
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show 00a04ef
|
|
commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:12:59 2023 +0300
|
|
|
|
code: добавлен вывод разности
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 1967dd8..2d3e243 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,6 +7,7 @@ int main()
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
- cout << "A + B = " << a + b << '\n';
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
|
|
}
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show main~1
|
|
commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7
|
|
Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru>
|
|
Date: Sat May 20 19:12:59 2023 +0300
|
|
|
|
code: добавлен вывод разности
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 1967dd8..2d3e243 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,6 +7,7 @@ int main()
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
- cout << "A + B = " << a + b << '\n';
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
|
|
}
|
|
|
|
|
|
18) Просмотр изменений:
|
|
|
|
Просмотрим изменения рабочей копии:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff
|
|
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 2d3e243..64da2d3 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -8,6 +8,7 @@ int main()
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
- << "A - B = " << a - b << '\n';
|
|
+ << "A - B = " << a - b << '\n'
|
|
+ << "A * B = " << a * b << '\n';
|
|
|
|
}
|
|
diff --git a/project.cbp b/project.cbp
|
|
index 99bb702..34f06bc 100644
|
|
--- a/project.cbp
|
|
+++ b/project.cbp
|
|
@@ -32,6 +32,7 @@
|
|
<Add option="-Wall" />
|
|
<Add option="-fexceptions" />
|
|
</Compiler>
|
|
+ <Unit filename=".gitignore" />
|
|
<Unit filename="main.cpp" />
|
|
<Extensions>
|
|
<lib_finder disable_auto="1" />
|
|
|
|
Просмотр разницы изменений двух комитов
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff 70a6613 00a04ef
|
|
diff --git a/main.cpp b/main.cpp
|
|
index b4392ec..2d3e243 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -4,6 +4,10 @@ using namespace std;
|
|
|
|
int main()
|
|
{
|
|
- cout << "Hello world!" << endl;
|
|
- return 0;
|
|
+ cout << "Enter A and B: ";
|
|
+ int a, b;
|
|
+ cin >> a >> b;
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
+
|
|
}
|
|
|
|
|
|
19) Откат изменений
|
|
|
|
Во-первых, закомитил изменения рабочей копии (вывод произведения)
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: добавлен вывод произведения'
|
|
[main 48dbf41] code: добавлен вывод произведения
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
Далее делаем откат изменений к предыдущей версии
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git reset --hard HEAD~1 (HEAD~1 - коммит к которому откатывают изменения)
|
|
HEAD is now at 0b0f71a git: добавлен файл игнорирования
|
|
|
|
или добавим комментарий над main() и откатим этот файл к состоянию в последнем коммите
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git checkout HEAD -- main.cpp
|
|
|
|
|
|
|
|
20) Создание пары ключей для доступа к серверу
|
|
|
|
ssh-keygen
|
|
|
|
Запустим агент, который работает в фоне и предоставляет ключи другим программам, в том числе git:
|
|
|
|
eval $(ssh-agent -s)
|
|
|
|
|
|
Далее скопировать открытый ключ при помощи команды cat ~/.ssh/id_rsa.pub и добавить в список открытых ключей своей учетной записи.
|
|
|
|
21)Создаем репозитарий под названием cs-lab02.
|
|
|
|
Далее клонируем проект в каталог Bob:
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob
|
|
$ git clone git@uit.mpei.ru:ZhalninVY/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.
|
|
|
|
|
|
Далее переходим в каталог проекта (project):
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob
|
|
$ cd project
|
|
|
|
После настраиваем git конфиг как с Alice:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git config user.name 'Bob (ZhalninVY)'
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git config user.email 'ZhalninVY@mpei.ru'
|
|
|
|
|
|
22)Совместная работа над проектом без конфликтов правок:
|
|
|
|
«На машине Боба» добавляем в программу печать произведения чисел и делаем коммит:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git add main.cpp
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git commit -m 'code: добавлен вывод произведения'
|
|
[main 3b58c8d] code: добавлен вывод произведения
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
Отправляем коммит на сервер:
|
|
|
|
ПК@DESKTOP-NNUUA3R 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), 425 bytes | 425.00 KiB/s, done.
|
|
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
|
|
remote: . Processing 1 references
|
|
remote: Processed 1 references in total
|
|
To uit.mpei.ru:ZhalninVY/cs-lab02.git
|
|
0b0f71a..3b58c8d main -> main
|
|
|
|
«На машине Алисы» выполнить загрузку изменений:
|
|
|
|
ПК@DESKTOP-NNUUA3R 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), 405 bytes | 81.00 KiB/s, done.
|
|
From uit.mpei.ru:ZhalninVY/cs-lab02
|
|
0b0f71a..3b58c8d main -> origin/main
|
|
|
|
|
|
Просмотрим историю всех веток:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 3b58c8d (origin/main) code: добавлен вывод произведения
|
|
* 0b0f71a (HEAD -> main) git: добавлен файл игнорирования
|
|
* 00a04ef code: добавлен вывод разности
|
|
* cdfe6e6 code: добавлен вывод суммы
|
|
* 1036577 code: добавлен ввод двух чисел
|
|
* e80d54b build: добавлен файл проекта
|
|
* 70a6613 code: заготовка программы
|
|
|
|
|
|
Как можно видеть, ветка main отстает на один коммит от ветки origin/main. Продвинем ветку main к скачанной версии:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git pull --ff-only
|
|
Updating 0b0f71a..3b58c8d
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
23)Разрешение конфликтов при совместной работе
|
|
|
|
Дополним у Alice вывод максимума, у Bob - вывод минимума, попробуем сделать коммит и отправить его на сервер:
|
|
|
|
Для Alice:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: добавлен вывод максимума'
|
|
[main 9c53d6f] code: добавлен вывод максимума
|
|
1 file changed, 4 insertions(+)
|
|
|
|
ПК@DESKTOP-NNUUA3R 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), 435 bytes | 435.00 KiB/s, done.
|
|
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
|
|
remote: . Processing 1 references
|
|
remote: Processed 1 references in total
|
|
To uit.mpei.ru:ZhalninVY/cs-lab02.git
|
|
a502524..9c53d6f main -> main
|
|
|
|
|
|
|
|
|
|
Для Bob:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git add main.cpp
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git commit -m 'code: добавлен вывод минимума'
|
|
[main 29109c5] code: добавлен вывод минимума
|
|
1 file changed, 4 insertions(+)
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push
|
|
To uit.mpei.ru:ZhalninVY/cs-lab02.git
|
|
! [rejected] main -> main (fetch first)
|
|
error: failed to push some refs to 'uit.mpei.ru:ZhalninVY/cs-lab02.git'
|
|
hint: Updates were rejected because the remote contains work that you do
|
|
hint: not have locally. This is usually caused by another repository pushing
|
|
hint: to the same ref. You may want to first integrate the remote changes
|
|
hint: (e.g., 'git pull ...') before pushing again.
|
|
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
|
|
|
|
|
|
Удаленный репозитарий не принимает изменений: коммит Боба основан не на последнем существующем коммите.
|
|
|
|
Загрузим коммит из удаленного хранилища и после отобразим историю всех веток:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git pull --ff-only
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 112ed02 (HEAD -> main) code: Вывод минимума
|
|
| * 4384564 (origin/main, origin/HEAD) code: Вывод максимума
|
|
|/
|
|
* a41a855 code: Вывод деления
|
|
* 45cd4c1 code: Вывод произведения
|
|
* 8f9bb60 git: Файл игнорирования
|
|
* 7835a20 code: Вывод разницы и суммы
|
|
* 974994b code: Вывод суммы
|
|
* 50bff83 code: Ввод переменных
|
|
* 36b4362 code: заготовка программы
|
|
|
|
Можно видеть, что ветка main локального репозитария разошлась с веткой origin/main, то есть с веткой main на сервере.
|
|
|
|
Переместим коммит Bobа поверх коммита Алисы, то есть поверх origin/main:
|
|
|
|
ПК@DESKTOP-NNUUA3R 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 112ed02... 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 112ed02... code: Вывод минимума
|
|
|
|
Команда завершается с ошибкой, сообщающей о конфликте в main.cpp.
|
|
|
|
Проверим статус репозитария:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git status
|
|
On branch main
|
|
Your branch is ahead of 'origin/main' by 1 commit. //Ваша ветвь опережает 'origin/main' на 1 коммит.
|
|
(use "git push" to publish your local commits)
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
Теперь разрешим конфликт в CodeBlocks и последобавляем файл в индекс, продолжаем прерванную операцию rebase:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git add main.cpp
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git rebase --continue
|
|
|
|
Проверяем, чтобы история хранилища была в надлежащем виде:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 2088abe (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод минимума
|
|
* 9c53d6f code: добавлен вывод максимума
|
|
* a502524 code: добавлен вывод частного
|
|
* 3b58c8d code: добавлен вывод произведения
|
|
* 0b0f71a git: добавлен файл игнорирования
|
|
* 00a04ef code: добавлен вывод разности
|
|
* cdfe6e6 code: добавлен вывод суммы
|
|
* 1036577 code: добавлен ввод двух чисел
|
|
* e80d54b build: добавлен файл проекта
|
|
* 70a6613 code: заготовка программы
|
|
|
|
24) Использование веток
|
|
|
|
Создадим ветку double:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git branch double
|
|
|
|
Переключимся на нее:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git checkout double
|
|
Switched to branch 'double'
|
|
|
|
Заменим тип переменных а и b на double и сделаем коммит:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git add main.cpp
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git commit -m 'code: изменение типа на double'
|
|
[double 7b6ff11] code: изменение типа на double
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
Переключимся на ветку main:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git checkout main
|
|
Switched to branch 'main'
|
|
Your branch is up to date with 'origin/main'.
|
|
|
|
|
|
|
|
Синхронизируем ветку main «на машине Алисы» с сервером.
|
|
|
|
ПК@DESKTOP-NNUUA3R 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), 386 bytes | 38.00 KiB/s, done.
|
|
From uit.mpei.ru:ZhalninVY/cs-lab02
|
|
9c53d6f..2088abe main -> origin/main
|
|
|
|
Продвинем ветку main к скачанной версии:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git pull --ff-only
|
|
Updating 9c53d6f..2088abe
|
|
Fast-forward
|
|
main.cpp | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
|
|
Просмотрим историю всех веток.
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 7b6ff11 (double) code: изменение типа на double
|
|
| * 2088abe (HEAD -> main, origin/main) code: добавлен вывод минимума
|
|
|/
|
|
* 9c53d6f code: добавлен вывод максимума
|
|
* a502524 code: добавлен вывод частного
|
|
* 3b58c8d code: добавлен вывод произведения
|
|
* 0b0f71a git: добавлен файл игнорирования
|
|
* 00a04ef code: добавлен вывод разности
|
|
* cdfe6e6 code: добавлен вывод суммы
|
|
* 1036577 code: добавлен ввод двух чисел
|
|
* e80d54b build: добавлен файл проекта
|
|
* 70a6613 code: заготовка программы
|
|
|
|
|
|
Сольем ветки double и main:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git merge double
|
|
Auto-merging main.cpp
|
|
Merge made by the 'ort' strategy.
|
|
main.cpp | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
Просмотрим историю всех веток репозитария:
|
|
|
|
ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* af1896d (HEAD -> main) Merge branch 'double' true
|
|
|\
|
|
| * 7b6ff11 (double) code: изменение типа на double
|
|
* | 2088abe (origin/main) code: добавлен вывод минимума
|
|
|/
|
|
* 9c53d6f code: добавлен вывод максимума
|
|
* a502524 code: добавлен вывод частного
|
|
* 3b58c8d code: добавлен вывод произведения
|
|
* 0b0f71a git: добавлен файл игнорирования
|
|
* 00a04ef code: добавлен вывод разности
|
|
* cdfe6e6 code: добавлен вывод суммы
|
|
* 1036577 code: добавлен ввод двух чисел
|
|
* e80d54b build: добавлен файл проекта
|
|
* 70a6613 code: заготовка программы
|
|
|
|
|
|
В результате слияния образуется специальный новый коммит (merge commit). |