Родитель
99345f1b4f
Сommit
a40fa75fbc
@ -0,0 +1,895 @@
|
||||
Отчёт по лабораторной работе №2 «Система контроля версий Git»
|
||||
|
||||
Выполнила: Артеменко А.Е.
|
||||
Группа: А-01-24
|
||||
|
||||
1. Вход в терминал и создание структуры каталогов
|
||||
Создаю на рабочем столе каталог lab02 и запускаю в нём Git Bash, мне выводит приглашение:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02
|
||||
$
|
||||
Смотрю файлы в рабочем каталоге с помощью команды ls, так как в каталоге пусто, ls ничего не выводит:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02
|
||||
$ ls
|
||||
Создаю папки Алисы и Боба:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02
|
||||
$ mkdir alice
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02
|
||||
$ mkdir bob
|
||||
|
||||
Перехожу в каталог Алисы с помощью команды cd и создаю в ней папку project.
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02
|
||||
$ cd alice
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice
|
||||
$ mkdir project
|
||||
Выполняю вход в каталог cd, а после поднимаю на уровень выше cd .. и снова возвращаюсь в папку project
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice
|
||||
$ cd project
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project
|
||||
$ cd ..
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice
|
||||
$ cd project
|
||||
|
||||
1. Инициализация репозитария и настройка Git
|
||||
Инициализируем репозиторий в текущем каталоге project:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project
|
||||
$ git init
|
||||
Initialized empty Git repository in C:/Users/user/Desktop/lab02/alice/project/.git/
|
||||
|
||||
К приглашению командной строки добавилось (master): имя текущий ветви Git.
|
||||
|
||||
Меняю текущее имя ветви master на имя main.
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (master)
|
||||
$ git branch -m main
|
||||
|
||||
Настраиваю репозитарий Алисы:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git config user.name 'Alice (ArtemenkoAY)'
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git config user.email 'ArtemenkoAY@mpei.ru'
|
||||
|
||||
2. Создание коммитов
|
||||
Посмотрим состояние рабочей копии:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git status
|
||||
On branch main
|
||||
|
||||
No commits yet
|
||||
|
||||
Untracked files:
|
||||
(use "git add <file>..." to include in what will be committed)
|
||||
bin/
|
||||
main.cpp
|
||||
obj/
|
||||
project.cbp
|
||||
project.layout
|
||||
|
||||
nothing added to commit but untracked files present (use "git add" to track)
|
||||
|
||||
1 строка – говорит о том, что мы находимся на ветке main.
|
||||
2 строка – говорит о том, что коммиты отсутствуют.
|
||||
3, 5-7 строки – показывает файлы, которые не отслеживаются git.
|
||||
4 строка – подсказывает, как создать коммит.
|
||||
8 строка – подсказывает, что нет коммитом, но есть не отслеживаемые файлы, которые можно закоммитить.
|
||||
|
||||
Добавим файл main.cpp в индекс, то есть в набор изменений, который войдет в очередной коммит:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git add main.cpp
|
||||
|
||||
Смотрю состояние рабочей копии:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git status
|
||||
On branch main
|
||||
Changes to be committed:
|
||||
(use "git restore --staged <file>..." to unstage)
|
||||
new file: main.cpp
|
||||
|
||||
Untracked files:
|
||||
(use "git add <file>..." to include in what will be committed)
|
||||
bin/
|
||||
obj/
|
||||
project.cbp
|
||||
project.layout
|
||||
|
||||
Появилась строка с файлом, который можно добавить в коммит.
|
||||
Выполним коммит с файлом main.cpp и коротким сообщением:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git commit -m 'code: заготовка программы'
|
||||
[main (root-commit) f4f7fa5] code: заготовка программы
|
||||
1 file changed, 9 insertions(+)
|
||||
create mode 100644 main.cpp
|
||||
|
||||
user@WIN-0E2RN91IREF 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/
|
||||
project.cbp
|
||||
project.layout
|
||||
|
||||
nothing added to commit but untracked files present (use "git add" to track)
|
||||
|
||||
Теперь добавим файл project.cbp, т.е. проделаем тот же самый алгоритм
|
||||
|
||||
user@WIN-0E2RN91IREF 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
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git status
|
||||
On branch main
|
||||
Changes to be committed:
|
||||
(use "git restore --staged <file>..." to unstage)
|
||||
new file: project.cbp
|
||||
|
||||
Untracked files:
|
||||
(use "git add <file>..." to include in what will be committed)
|
||||
bin/
|
||||
obj/
|
||||
project.layout
|
||||
|
||||
Выполним коммит с файлом project.cbp и коротким сообщением
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git commit -m 'build: добавлен файл проекта'
|
||||
[main 6ee4e6b] build: добавлен файл проекта
|
||||
1 file changed, 38 insertions(+)
|
||||
create mode 100644 project.cbp
|
||||
|
||||
Меняю тело функции main() на ввод двух чисел, смотрю состояние репозитория:
|
||||
|
||||
user@WIN-0E2RN91IREF 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.layout
|
||||
|
||||
no changes added to commit (use "git add" and/or "git commit -a")
|
||||
|
||||
1 строка – говорит о том, что мы находимся на основной ветке.
|
||||
2-4 строки – предлагают удалить изменения или обновить коммит.
|
||||
5 - строка пишет, что файл main.cpp был изменен.
|
||||
6-10 строки – не отслеживаемые файлы.
|
||||
|
||||
Проделываем ряд изменений с кодом программы и делаем коммиты суммы и разности:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git add main.cpp
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git commit -m 'code: вывод суммы'
|
||||
[main 13bafc2] code: вывод суммы
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git add -u
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git commit -m 'code: вывод разности'
|
||||
[main 149da8c] code: вывод разности
|
||||
1 file changed, 1 insertion(+)
|
||||
3. Игнорирование файлов
|
||||
Создаю в CodeBlocks файл .gitignore, где будут написаны названия файлов, которые нужно будет игнорировать. Данный файл также коммичу.
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git add .gitignore
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git commit -m 'git: игнорирование файлов'
|
||||
[main c03016f] git: игнорирование файлов
|
||||
1 file changed, 4 insertions(+)
|
||||
create mode 100644 .gitignore
|
||||
|
||||
Проверяю, чтобы необходимые файлы и каталоги не отображались:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git status
|
||||
On branch main
|
||||
nothing to commit, working tree clean
|
||||
|
||||
4. Просмотр истории
|
||||
Работа с журналом репозитария:
|
||||
Команда git log --stat, которая показывает файлы, изменённые в коммитах:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git log --stat
|
||||
commit c03016f9f6abb51433cd08096949acef2648472c (HEAD -> main)
|
||||
commit c03016f9f6abb51433cd08096949acef2648472c (HEAD -> main)
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Sun Mar 23 19:51:53 2025 +0300
|
||||
|
||||
git: игнорирование файлов
|
||||
|
||||
.gitignore | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
commit 149da8cbebafc64e97026448c62d0ca592f1b1a7
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Sun Mar 23 19:41:41 2025 +0300
|
||||
|
||||
code: вывод разности
|
||||
|
||||
main.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
commit 13bafc29058a21adaec5542b3d8f901bd397c7ed
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Sun Mar 23 19:39:44 2025 +0300
|
||||
|
||||
code: вывод суммы
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git log --main.cpp
|
||||
fatal: unrecognized argument: --main.cpp
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git log -- main.cpp
|
||||
commit 149da8cbebafc64e97026448c62d0ca592f1b1a7
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Sun Mar 23 19:41:41 2025 +0300
|
||||
|
||||
code: вывод разности
|
||||
|
||||
commit 13bafc29058a21adaec5542b3d8f901bd397c7ed
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Sun Mar 23 19:39:44 2025 +0300
|
||||
|
||||
code: вывод суммы
|
||||
|
||||
commit f4f7fa5d1bb021ac6732ce0ba0fd23d0b9cc0c01
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Sun Mar 23 19:32:18 2025 +0300
|
||||
|
||||
code: заготовка программы
|
||||
|
||||
Для последнего коммита данная команда показывает:
|
||||
1 строка - хэш коммита
|
||||
2 строка - автор
|
||||
3 строка - дата и время создания
|
||||
4 строка - комментарий
|
||||
5 строка - файл, который был изменён, количество изменённых строчек
|
||||
6 строчка - статистика изменений данных файлов
|
||||
|
||||
Коммиты по теме build:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git log --grep 'build'
|
||||
commit 6ee4e6b18ec8209422a8ac1a41d406c9cdc43ca7
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Sun Mar 23 19:36:01 2025 +0300
|
||||
|
||||
build: добавлен файл проекта
|
||||
|
||||
Коммиты, затрагивающие project.cbp:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git log -- project.cbp
|
||||
commit 6ee4e6b18ec8209422a8ac1a41d406c9cdc43ca7
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Sun Mar 23 19:36:01 2025 +0300
|
||||
|
||||
build: добавлен файл проекта
|
||||
|
||||
Таким способом мы просмотрели информацию о коммите по измененному файлу и по теме коммита.
|
||||
|
||||
Просмотр коммитов:
|
||||
Далее тремя эквивалентными способами просматриваем информацию о предпоследнем коммите.
|
||||
|
||||
1. При помощи отступа на 1 коммит:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git show HEAD~1
|
||||
commit 149da8cbebafc64e97026448c62d0ca592f1b1a7
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Sun Mar 23 19:41:41 2025 +0300
|
||||
|
||||
code: вывод разности
|
||||
|
||||
diff --git a/main.cpp b/main.cpp
|
||||
index 1967dd8..f77bbcc 100644
|
||||
--- a/main.cpp
|
||||
+++ b/main.cpp
|
||||
@@ -8,5 +8,6 @@ int main()
|
||||
int a, b;
|
||||
cin >> a >> b;
|
||||
cout << "A + B = " << a + b << '\n';
|
||||
+ cout << "A - B = " << a - b << '\n';
|
||||
|
||||
}
|
||||
2. При помощи обращении к самой ветке main и отступу на 1 коммит:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git show main~1
|
||||
commit 149da8cbebafc64e97026448c62d0ca592f1b1a7
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Sun Mar 23 19:41:41 2025 +0300
|
||||
|
||||
code: вывод разности
|
||||
|
||||
diff --git a/main.cpp b/main.cpp
|
||||
index 1967dd8..f77bbcc 100644
|
||||
--- a/main.cpp
|
||||
+++ b/main.cpp
|
||||
@@ -8,5 +8,6 @@ int main()
|
||||
int a, b;
|
||||
cin >> a >> b;
|
||||
cout << "A + B = " << a + b << '\n';
|
||||
+ cout << "A - B = " << a - b << '\n';
|
||||
|
||||
}
|
||||
3. Обращаясь к коммиту через его хеш
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git show 149da8cbebafc64e97026448c62d0ca592f1b1a7
|
||||
commit 149da8cbebafc64e97026448c62d0ca592f1b1a7
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Sun Mar 23 19:41:41 2025 +0300
|
||||
|
||||
code: вывод разности
|
||||
|
||||
diff --git a/main.cpp b/main.cpp
|
||||
index 1967dd8..f77bbcc 100644
|
||||
--- a/main.cpp
|
||||
+++ b/main.cpp
|
||||
@@ -8,5 +8,6 @@ int main()
|
||||
int a, b;
|
||||
cin >> a >> b;
|
||||
cout << "A + B = " << a + b << '\n';
|
||||
+ cout << "A - B = " << a - b << '\n';
|
||||
|
||||
}
|
||||
|
||||
Просмотр изменений
|
||||
|
||||
Внесем изменения в main.cpp: добавим печать произведения чисел, но не станем пока делать коммит.
|
||||
Просмотрим изменения в рабочей копии:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git diff
|
||||
diff --git a/main.cpp b/main.cpp
|
||||
index f77bbcc..8d75565 100644
|
||||
--- a/main.cpp
|
||||
+++ b/main.cpp
|
||||
@@ -9,5 +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';
|
||||
}
|
||||
|
||||
1 строка - файлы, которые сравнивает команда: a/main.cpp (старая версия файла) и b/main.cpp (новая версия файла).
|
||||
2 строка - хэши старой и новой версий файла.
|
||||
5 строка - в каких строках произошли изменения и количество строк в старом и новом файлах.
|
||||
6 - 10 строка - показывает, что изменилось в строках, что осталось таким же.
|
||||
|
||||
Изменения между самым первым коммитом и коммитом, добавляющим вывод разности:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git diff f4f7fa5d1bb021ac6732ce0ba0fd23d0b9cc0c01 149da8cbebafc64e97026448c62d0ca592f1b1a7
|
||||
diff --git a/main.cpp b/main.cpp
|
||||
index b4392ec..f77bbcc 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';
|
||||
+ cout << "A - B = " << a - b << '\n';
|
||||
+
|
||||
}
|
||||
diff --git a/project.cbp b/project.cbp
|
||||
new file mode 100644
|
||||
index 0000000..c4697a9
|
||||
--- /dev/null
|
||||
+++ b/project.cbp
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
|
||||
5. Откат изменений
|
||||
|
||||
Закоммитим изменения в рабочей копии (вывод произведения):
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git commit -m: 'code: вывод произведения'
|
||||
error: pathspec 'code: вывод произведения' did not match any file(s) known to git
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git add main.cpp
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git commit -m 'code: вывод произведения'
|
||||
[main c05dcd7] code: вывод произведения
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Вносим изменения в код, а потом откатываем их до состояния в определенном коммите с помощью команды git reset:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git reset --hard HEAD~1
|
||||
HEAD is now at c03016f git: игнорирование файлов
|
||||
Добавим над функцией main() комментарий:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ # you may type whatever you want
|
||||
|
||||
Уберем изменения в main.cpp другим способом — откатив этот файл к состоянию в последнем коммите (HEAD):
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git checkout HEAD -- main.cpp
|
||||
|
||||
6. Обмен кодом через удаленное хранилище
|
||||
Обмен кодом через удалённое хранилище. Для загрузки данных в репозитарий GitHub будет использоваться протокол SSH. Поэтому для обмена данными с сервером нужно сгенерировать пару из открытого и закрытого ключей.
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ ssh-keygen
|
||||
Generating public/private ed25519 key pair.
|
||||
Enter file in which to save the key (/c/Users/user/.ssh/id_ed25519): 1234
|
||||
Enter passphrase for "1234" (empty for no passphrase):
|
||||
Enter same passphrase again:
|
||||
Your identification has been saved in 1234
|
||||
Your public key has been saved in 1234.pub
|
||||
The key fingerprint is:
|
||||
SHA256:TrF57TZXY8hnZk7BsMnOVdyMwMMX/7CO42xABSLAn1E user@WIN-0E2RN91IREF
|
||||
The key's randomart image is:
|
||||
+--[ED25519 256]--+
|
||||
| .....E .+.o.=o|
|
||||
| . .. . * B.=|
|
||||
| . o. . *.+.|
|
||||
| o +..+ ooo|
|
||||
| S.. .=.Oo|
|
||||
| o ... oO..|
|
||||
| . .* o. |
|
||||
| +.+ |
|
||||
| .o |
|
||||
+----[SHA256]-----+
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ eval $(ssh-agent -s)
|
||||
Agent pid 1632
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ ssh-add
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ ssh-add 1234
|
||||
Enter passphrase for 1234:
|
||||
Identity added: 1234 (user@WIN-0E2RN91IREF)
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ cat 1234.pub
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJsfdrIXpoRC8oz8Yb0nvDW/14kGjNtiaxVJW+gq2zje user@WIN-0E2RN91IREF
|
||||
|
||||
Добавим репозитарий на который будем загружать хранилище git, и загрузим хранилище git на GitHub с помощью команды git push:
|
||||
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git remote set-url origin http://uit.mpei.ru/git/ArtemenkoAY/cs-lab02.git
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git push -u origin main
|
||||
warning: auto-detection of host provider took too long (>2000ms)
|
||||
warning: see https://aka.ms/gcm/autodetect for more information.
|
||||
warning: use of unencrypted HTTP remote URLs is not recommended; see https://aka.ms/gcm/unsaferemotes for more information.
|
||||
warning: auto-detection of host provider took too long (>2000ms)
|
||||
warning: see https://aka.ms/gcm/autodetect for more information.
|
||||
Enumerating objects: 15, done.
|
||||
Counting objects: 100% (15/15), done.
|
||||
Delta compression using up to 4 threads
|
||||
Compressing objects: 100% (13/13), done.
|
||||
Writing objects: 100% (15/15), 2.00 KiB | 146.00 KiB/s, done.
|
||||
Total 15 (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/ArtemenkoAY/cs-lab02.git
|
||||
* [new branch] main -> main
|
||||
branch 'main' set up to track 'origin/main'.
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git remote -v
|
||||
origin http://uit.mpei.ru/git/ArtemenkoAY/cs-lab02.git (fetch)
|
||||
origin http://uit.mpei.ru/git/ArtemenkoAY/cs-lab02.git (push)
|
||||
|
||||
Получение проекта с сервера
|
||||
Предположим, к разработке проекта присоединяется Боб. Откроем рабочую копию с машины Боба:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob
|
||||
$ git clone http://uit.mpei.ru/git/ArtemenkoAY/cs-lab02.git project
|
||||
Cloning into 'project'...
|
||||
remote: Enumerating objects: 15, done.
|
||||
remote: Counting objects: 100% (15/15), done.
|
||||
remote: Compressing objects: 100% (13/13), done.
|
||||
remote: Total 15 (delta 1), reused 0 (delta 0), pack-reused 0
|
||||
Receiving objects: 100% (15/15), done.
|
||||
Resolving deltas: 100% (1/1), done.
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob
|
||||
$ cd project
|
||||
|
||||
Настроим хранилище Боба:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main)
|
||||
$ git config user.name 'Bob (ArtemenkoAY)'
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main)
|
||||
$ git config user.email 'ArtemenkoAYI@mpei.ru'
|
||||
|
||||
7. Совместная работа над проектом без конфликтов правок
|
||||
Боб добавляет новый коммит, опережающий версию на сервере, и загружает его на GitHub.
|
||||
«На машине Боба» добавляем в программу печать произведения чисел и делаем коммит:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main)
|
||||
$ git add main.cpp
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main)
|
||||
$ git commit -m 'code: вывод произведения'
|
||||
[main 98cdbca] code: вывод произведения
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
Отправляем коммит на сервер:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main)
|
||||
$ git push
|
||||
warning: auto-detection of host provider took too long (>2000ms)
|
||||
warning: see https://aka.ms/gcm/autodetect for more information.
|
||||
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), 420 bytes | 140.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/ArtemenkoAY/cs-lab02.git
|
||||
c03016f..98cdbca main -> main
|
||||
|
||||
«На машине Алисы» (то есть в первом терминале, в каталоге alice/project) выполните загрузку изменений:
|
||||
|
||||
user@WIN-0E2RN91IREF 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), 400 bytes | 14.00 KiB/s, done.
|
||||
From http://uit.mpei.ru/git/ArtemenkoAY/cs-lab02
|
||||
c03016f..98cdbca main -> origin/main
|
||||
|
||||
Убедимся, что в рабочей копии изменений еще не произошло.
|
||||
Для этого посмотрим историю всех веток:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git log --oneline --decorate --all --graph
|
||||
* 98cdbca (origin/main, origin/HEAD) code: вывод произведения
|
||||
* c03016f (HEAD -> main) git: игнорирование файлов
|
||||
* 149da8c code: вывод разности
|
||||
* 13bafc2 code: вывод суммы
|
||||
* 6ee4e6b build: добавлен файл проекта
|
||||
* f4f7fa5 code: заготовка программы
|
||||
|
||||
Как можно видеть, ветка main отстает на один коммит от ветки origin/main. Продвинем ветку main к скачанной версии:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git pull --ff-only
|
||||
Updating c03016f..98cdbca
|
||||
Fast-forward
|
||||
main.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
«От имени Алисы» добавляем в программу печать деления, а после коммит:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git add main.cpp
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git commit -m 'code: вывод деления'
|
||||
[main 103f0b2] code: вывод деления
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Загружаем изменения на сервер:
|
||||
|
||||
user@WIN-0E2RN91IREF 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), 401 bytes | 401.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/ArtemenkoAY/cs-lab02.git
|
||||
98cdbca..103f0b2 main -> main
|
||||
|
||||
И получаем новую версию «на машине Боба»:
|
||||
|
||||
user@WIN-0E2RN91IREF 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), 381 bytes | 6.00 KiB/s, done.
|
||||
From http://uit.mpei.ru/git/ArtemenkoAY/cs-lab02
|
||||
98cdbca..103f0b2 main -> origin/main
|
||||
|
||||
Ветка main, как мы знаем, отстает на один коммит от ветки origin/main. Продвинем ветку main к скачанной версии:
|
||||
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main)
|
||||
$ git pull --ff-only
|
||||
Updating 98cdbca..103f0b2
|
||||
Fast-forward
|
||||
main.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
8. Разрешение конфликтов правок при совместной работе
|
||||
Далее, Алиса решает добавить в программу печать максимума из чисел, а Боб — минимума.
|
||||
От лица Алисы, добавляем печать максимума:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git add main.cpp
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git commit -m 'code: вывод максимума'
|
||||
[main d777285] code: вывод максимума
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
Загружаем изменения на сервер от лица Алисы:
|
||||
user@WIN-0E2RN91IREF 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), 409 bytes | 204.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/ArtemenkoAY/cs-lab02.git
|
||||
103f0b2..d777285 main -> main
|
||||
|
||||
От лица Боб, добавляем печать минимума:
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main)
|
||||
$ git add main.cpp
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main)
|
||||
$ git commit -m 'code: вывод минимума'
|
||||
[main d84e249] code: вывод минимума
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
|
||||
Загружаем изменения на сервер от лица Боба:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main)
|
||||
$ git push
|
||||
To http://uit.mpei.ru/git/ArtemenkoAY/cs-lab02.git
|
||||
! [rejected] main -> main (fetch first)
|
||||
error: failed to push some refs to 'http://uit.mpei.ru/git/ArtemenkoAY/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.
|
||||
|
||||
|
||||
Однако загрузить на сервер изменения получается только у Алисы потому, что Боб затем пытается загрузить версию, основанную на более старом коммите, чем самый новый коммит в репозитарии GitHub.
|
||||
Загрузим версию с сервера:
|
||||
|
||||
user@WIN-0E2RN91IREF 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), 389 bytes | 7.00 KiB/s, done.
|
||||
From http://uit.mpei.ru/git/ArtemenkoAY/cs-lab02
|
||||
103f0b2..d777285 main -> origin/main
|
||||
|
||||
Можно видеть, что ветка main локального репозитария разошлась с веткой origin/main, то есть с веткой main на сервере.
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main)
|
||||
$ git log --oneline --decorate --all --graph
|
||||
* d84e249 (HEAD -> main) code: вывод минимума
|
||||
| * d777285 (origin/main, origin/HEAD) code: вывод максимума
|
||||
|/
|
||||
* 103f0b2 code: вывод деления
|
||||
* 98cdbca code: вывод произведения
|
||||
* c03016f git: игнорирование файлов
|
||||
* 149da8c code: вывод разности
|
||||
* 13bafc2 code: вывд суммы
|
||||
* 6ee4e6b build: добавлен файл проекта
|
||||
* f4f7fa5 code: заготовка программы
|
||||
|
||||
Бобу нужно переместить свой коммит поверх коммита Алисы, то есть поверх origin/main:
|
||||
|
||||
|
||||
user@WIN-0E2RN91IREF 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 d84e249... 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 d84e249... code: вывод минимума
|
||||
|
||||
Комманда завершается с ошибкой из-за конфликта в файле с кодом main.cpp. Производный файл от файла Алисы и Боба записывается в рабочую копию с помеченными метками конфликта. Убираем метки конфликта, и дорабатываем код так, чтобы программа компилировалась и работала. Затем загружаем изменения в индекс и продолжаем операцию git rebase, с помощью флага –continue.
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
|
||||
$ git add main.cpp
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1)
|
||||
$ git rebase --continue
|
||||
hint: Waiting for your editor to close the file...
|
||||
(electron) Sending uncompressed crash reports is deprecated and will be removed in a future version of Electron. Set { compress: true } to opt-in to the new behavior. Crash reports will be uploaded gzipped, which most crash reporting servers support.
|
||||
(node:12404) electron: The default of contextIsolation is deprecated and will be changing from false to true in a future release of Electron. See https://github.com/electron/electron/issues/23506 for more information
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\superstring\build\Release\superstring.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\pathwatcher\build\Release\pathwatcher.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\oniguruma\build\Release\onig_scanner.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-c\build\Release\tree_sitter_c_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-cpp\build\Release\tree_sitter_cpp_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-css\build\Release\tree_sitter_css_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-go\build\Release\tree_sitter_go_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-embedded-template\build\Release\tree_sitter_embedded_template_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-html\build\Release\tree_sitter_html_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-java-dev\build\Release\tree_sitter_java_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-javascript\build\Release\tree_sitter_javascript_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-jsdoc\build\Release\tree_sitter_jsdoc_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-regex\build\Release\tree_sitter_regex_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-json\build\Release\tree_sitter_json_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-python\build\Release\tree_sitter_python_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-ruby\build\Release\tree_sitter_ruby_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-rust\build\Release\tree_sitter_rust_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-bash\build\Release\tree_sitter_bash_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-typescript\build\Release\tree_sitter_tsx_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\tree-sitter-typescript\build\Release\tree_sitter_typescript_binding.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:12404) electron: The default of contextIsolation is deprecated and will be changing from false to true in a future release of Electron. See https://github.com/electron/electron/issues/23506 for more information
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\spellchecker\build\Release\spellchecker.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\git-utils\build\Release\git.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
(node:2328) Electron: Loading non-context-aware native module in renderer: '\\?\C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar.unpacked\node_modules\@atom\nsfw\build\Release\nsfw.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
|
||||
Attempting to call a function in a renderer window that has been closed or released.
|
||||
Function provided here: Object.<anonymous> (C:\Users\user\AppData\Local\atom\app-1.63.1\resources\app.asar\node_modules\github\lib\worker.js:64:22
|
||||
Remote event names: crashed, destroyed
|
||||
[detached HEAD 92cf582] code: вывод минимума
|
||||
1 file changed, 2 insertions(+)
|
||||
Successfully rebased and updated refs/heads/main.
|
||||
|
||||
Отправим изменения на сервер:
|
||||
|
||||
|
||||
user@WIN-0E2RN91IREF 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), 416 bytes | 208.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/ArtemenkoAY/cs-lab02.git
|
||||
d777285..92cf582 main -> main
|
||||
|
||||
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git pull --ff-only
|
||||
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), 396 bytes | 7.00 KiB/s, done.
|
||||
From http://uit.mpei.ru/git/ArtemenkoAY/cs-lab02
|
||||
d777285..92cf582 main -> origin/main
|
||||
Updating d777285..92cf582
|
||||
Fast-forward
|
||||
main.cpp | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git log
|
||||
commit 92cf5822e746a681143206a7f8ca57857507fb73 (HEAD -> main, origin/main, origin/HEAD)
|
||||
Author: Bob (ArtemenkoAY) <ArtemenkoAYI@mpei.ru>
|
||||
Date: Mon Mar 24 16:11:57 2025 +0300
|
||||
|
||||
code: вывод минимума
|
||||
|
||||
commit d7772852e578b47185b4140824dc02cfa8744c3c
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Mon Mar 24 16:07:07 2025 +0300
|
||||
|
||||
code: вывод максимума
|
||||
|
||||
commit 103f0b2532c5cfefe97a5bdd8e6bf13957204757
|
||||
Author: Alice (ArtemenkoAY) <ArtemenkoAY@mpei.ru>
|
||||
Date: Mon Mar 24 13:38:56 2025 +0300
|
||||
|
||||
code: вывод деления
|
||||
|
||||
commit 98cdbca4cd7bdfbd5795c326962db6de9e775736
|
||||
Author: Bob (ArtemenkoAY) <ArtemenkoAYI@mpei.ru>
|
||||
Date: Mon Mar 24 13:25:54 2025 +0300
|
||||
|
||||
|
||||
Получили желаемый результат.
|
||||
9. Использование веток
|
||||
Пока Боб синхронизирует изменения, Алиса меняет целые числа на действительные, для этого создадим отдельную ветку double т.к. это может занять время.
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git branch double
|
||||
|
||||
Переключаюсь с ветки main на ветку double:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git checkout double
|
||||
Switched to branch 'double'
|
||||
|
||||
Меняем тип данных и коммитим изменения в файле:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (double)
|
||||
$ git add main.cpp
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (double)
|
||||
$ git commit -m 'code: изменение типа данных'
|
||||
[double 44e5418] code: изменение типа данных
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Обратно переключаемся на ветку main:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (double)
|
||||
$ git checkout main
|
||||
Switched to branch 'main'
|
||||
Your branch is up to date with 'origin/main'.
|
||||
|
||||
Синхронизируем ветку main:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git fetch
|
||||
Получаем одновременно две ветки:
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git log --oneline --decorate --all --graph
|
||||
* 44e5418 (double) code: изменение типа данных
|
||||
* 92cf582 (HEAD -> main, origin/main, origin/HEAD) code: вывод минимума
|
||||
* d777285 code: вывод максимума
|
||||
* 103f0b2 code: вывод деления
|
||||
* 98cdbca code: вывод произведения
|
||||
* c03016f git: игнорирование файлов
|
||||
* 149da8c code: вывод разности
|
||||
* 13bafc2 code: вывод суммы
|
||||
* 6ee4e6b build: добавлен файл проекта
|
||||
* f4f7fa5 code: заготовка программы
|
||||
|
||||
|
||||
Объединяем ветки double и main. Вносим последние изменения и загружаем на GitHub.
|
||||
|
||||
user@WIN-0E2RN91IREF MINGW64 ~/Desktop/lab02/alice/project (main)
|
||||
$ git merge double
|
||||
Updating 92cf582..44e5418
|
||||
Fast-forward
|
||||
main.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
user@WIN-0E2RN91IREF 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), 396 bytes | 198.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/ArtemenkoAY/cs-lab02.git
|
||||
92cf582..44e5418 main -> main
|
||||
|
||||
|
Загрузка…
Ссылка в новой задаче