Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
721 строка
32 KiB
Plaintext
721 строка
32 KiB
Plaintext
Вход в терминал и создание структуры каталогов
|
|
Создём папки пользователей(mkdir alice, mkdir bob)
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2
|
|
$ mkdir alice
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2
|
|
$ mkdir bob
|
|
|
|
В папке пользователя alice создаём папку project
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice
|
|
$ cd alice
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice
|
|
$ mkdir project
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice
|
|
$ cd project
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project
|
|
$ cd ..
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice
|
|
$ cd project
|
|
|
|
Инициализация репозитария и настройка Git
|
|
Инициализируем хранилище git(git init)
|
|
Настраиваем папки пользователя, с которым будем работать
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project
|
|
git init
|
|
Initialized empty Git repository in C:/Users/vikkt/Desktop/1 semestr lab/LAB2/alice/project/.git/
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (master)
|
|
$ git branch -m main
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git config user.name 'alice(victoriaCS)'
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git config user.email 'CherniukVS@mpei.ru'
|
|
|
|
|
|
Создание коммитов
|
|
Занесение файлов под контроль версий
|
|
Просматриваем состояние рабочей копии(git status)
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/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
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
В первой строке ссылка РУФВ указывает на ветку main;
|
|
Вторая строка говорит о том, что ещё не было создано коммитов;
|
|
Третья строка показывает неотслеживаемые файлы в хранилище git и подсказывает как их добавить;
|
|
Последняя строка говорит о том, что нет добавленных(отслеживаемых) файлов, которые можно будет закоммитить;
|
|
Добавляем файл с кодом и проверяем изменения
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
|
|
No commits yet
|
|
|
|
Changes to be committed:
|
|
(use "git rm --cached <file>..." to unstage)
|
|
new file: main.cpp
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
bin/
|
|
obj/
|
|
project.cbp
|
|
|
|
Появилась строка с файлами в индексе, стоящими в очереди на коммит
|
|
|
|
Составление сообщений к коммитам
|
|
Создаём два коммита с информацией о коде программы
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git commit -m 'code: заготовка программы'
|
|
[main (root-commit) 3e087e4] code: заготовка программы
|
|
1 file changed, 9 insertions(+)
|
|
create mode 100644 main.cpp
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/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
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git commit -m 'build: add project file'
|
|
[main 5a6462f] build: add project file
|
|
1 file changed, 38 insertions(+)
|
|
create mode 100644 project.cbp
|
|
После добавления в программу ввода двух чисел, видим, что файл main.cpp был изменён
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/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")
|
|
|
|
Проделываем ряд изменений с кодом программы и делаем коммиты суммы и разности
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git commit -m 'code: вывод суммы'
|
|
[main 0b91b8d] code: вывод суммы
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git commit -m 'code: вывод разности'
|
|
[main a300ded] code: вывод разности
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
Игнорирование файлов
|
|
Укажем git игнорировать присутствие каталога bin и obj
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
.gitignore
|
|
obj/
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
.gitignore
|
|
project.depend
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/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)
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git add .gitignore
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git commit -m 'code: игнорирование бинарных файлов'
|
|
[main daa19f7] code: игнорирование бинарных файлов
|
|
1 file changed, 3 insertions(+)
|
|
create mode 100644 .gitignore
|
|
|
|
|
|
Просмотр истории
|
|
С помощью команды git log и различных её опций просматриваем журнал коммитов
|
|
Используем команду git log--stat
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git log --stat
|
|
commit daa19f7ce2a1201910f4981b36a7cb460d2b067e (HEAD -> main)
|
|
Author: alice(victoriaCS) <CherniukVS@mpei.ru>
|
|
Date: Sat Apr 12 11:42:51 2025 +0300
|
|
|
|
code: игнорирование бинарных файлов
|
|
|
|
.gitignore | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
commit a300ded928d4bfba3c6bd73f3a2dcb2ff6664162
|
|
Author: alice(victoriaCS) <CherniukVS@mpei.ru>
|
|
Date: Sat Apr 12 11:29:13 2025 +0300
|
|
|
|
code: вывод разности
|
|
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
commit 0b91b8d933527ef48e1779a37d267c2c988a10d4
|
|
Author: alice(victoriaCS) <CherniukVS@mpei.ru>
|
|
Date: Sat Apr 12 11:27:28 2025 +0300
|
|
|
|
code: вывод суммы
|
|
В последнем коммите первой строкой показывается хэш коммита, по которому можно потом найти этот коммит;
|
|
Во второй строке записан автор, внёсший этот коммит, а строкой ниже - время создания коммита;
|
|
Далее идёт комментарий к коммиту;
|
|
Перечисление файлов, в которых произошли изменения и количество изменённых строчек('+' добавленная строк, '-' удалённая строка);
|
|
|
|
Другие способы просмотра историй
|
|
В последней строке приведена статистика изменений данных файлов
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git log --oneline --decorate
|
|
daa19f7 (HEAD -> main) code: игнорирование бинарных файлов
|
|
a300ded code: вывод разности
|
|
0b91b8d code: вывод суммы
|
|
5a6462f build: add project file
|
|
3e087e4 code: заготовка программы
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* daa19f7 (HEAD -> main) code: игнорирование бинарных файлов
|
|
* a300ded code: вывод разности
|
|
* 0b91b8d code: вывод суммы
|
|
* 5a6462f build: add project file
|
|
* 3e087e4 code: заготовка программы
|
|
|
|
Используем команды для просмотра отдельных коммитов(git log - main.cpp/git log - grep "code:")
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git log --grep "build:"
|
|
commit 5a6462f0e30e123a5ee61a141212ad9db6cf348b
|
|
Author: alice(victoriaCS) <CherniukVS@mpei.ru>
|
|
Date: Sat Apr 12 11:20:58 2025 +0300
|
|
|
|
build: add project file
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git log -- project.cbp
|
|
commit 5a6462f0e30e123a5ee61a141212ad9db6cf348b
|
|
Author: alice(victoriaCS) <CherniukVS@mpei.ru>
|
|
Date: Sat Apr 12 11:20:58 2025 +0300
|
|
|
|
build: add project file
|
|
|
|
Таким образом, мы посмотрели информацию о коммите по изменённому файлу и по теме коммита
|
|
|
|
Просмотр коммитов
|
|
Тремя способами просматриваем информацию о предпоследнем коммите
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git show HEAD~1
|
|
commit a300ded928d4bfba3c6bd73f3a2dcb2ff6664162
|
|
Author: alice(victoriaCS) <CherniukVS@mpei.ru>
|
|
Date: Sat Apr 12 11:29:13 2025 +0300
|
|
|
|
code: вывод разности
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 4364dbc..8435233 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,5 +7,6 @@ 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';
|
|
}
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git show main~1
|
|
commit a300ded928d4bfba3c6bd73f3a2dcb2ff6664162
|
|
Author: alice(victoriaCS) <CherniukVS@mpei.ru>
|
|
Date: Sat Apr 12 11:29:13 2025 +0300
|
|
|
|
code: вывод разности
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 4364dbc..8435233 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,5 +7,6 @@ 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';
|
|
}
|
|
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git show a300ded
|
|
commit a300ded928d4bfba3c6bd73f3a2dcb2ff6664162
|
|
Author: alice(victoriaCS) <CherniukVS@mpei.ru>
|
|
Date: Sat Apr 12 11:29:13 2025 +0300
|
|
|
|
code: вывод разности
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 4364dbc..8435233 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,5 +7,6 @@ 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';
|
|
}
|
|
|
|
Просмотр изменений
|
|
Добавим изменения в рабочую копию ипосмотрим их с помощью команды git diff
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git diff
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 8435233..f372c78 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'
|
|
- << "A - B = " << a - b << '\n';
|
|
+ << "A - B = " << a - b << '\n'
|
|
+ << "A * B = " << a * b << '\n';
|
|
}
|
|
В качестве первой строки мы видим входные данные команды для сравнения файлов;
|
|
Далее идёт заголовок с легендой изменения, место изменённого кода и изменённая функция;
|
|
На следующей строке идут строки вокруг изменённой части, удалённые и добавленные строки
|
|
|
|
Откат изменений
|
|
Вносим изменения в код, а потом откатываем их до состояния в определённом коммите с помощью команды git reset
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git commit -m 'code: вывод произведения'
|
|
[main db14ba7] code: вывод произведения
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git reset --hard HEAD~1
|
|
HEAD is now at daa19f7 code: игнорирование бинарных файлов
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git checkout HEAD -- main.cpp
|
|
|
|
Обмен кодом через удаленное хранилище
|
|
Для загрузки данных в репозитарий GitHub будет использоваться протокол SSH, поэтому для обмена данными с сервером нужно сгенерировать пару из открытого и закрытого ключей
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ ssh-keygen
|
|
Generating public/private ed25519 key pair.
|
|
Enter file in which to save the key (/c/Users/vikkt/.ssh/id_ed25519): /c/Users/vikkt/.ssh/id_ed25519
|
|
/c/Users/vikkt/.ssh/id_ed25519 already exists.
|
|
Overwrite (y/n)? y
|
|
Enter passphrase for "/c/Users/vikkt/.ssh/id_ed25519" (empty for no passphrase):
|
|
Enter same passphrase again:
|
|
Your identification has been saved in /c/Users/vikkt/.ssh/id_ed25519
|
|
Your public key has been saved in /c/Users/vikkt/.ssh/id_ed25519.pub
|
|
The key fingerprint is:
|
|
SHA256:tmrCLoV3ZXGGKh5ghV4DQFBi3IazgCgZ5K4Y0ZSRFdQ vikkt@Vika
|
|
The key's randomart image is:
|
|
+--[ED25519 256]--+
|
|
|%OBX=o . |
|
|
|OB*oo E o o |
|
|
|++=o . . + |
|
|
|.o. o . o |
|
|
|.. o o oS |
|
|
|o.. + .. . |
|
|
|o + . . |
|
|
| . o .. |
|
|
| o.o. |
|
|
+----[SHA256]-----+
|
|
|
|
Также после этого отображаются уникальные данные ключа. Поскольку в работе вводить пароль при каждом использовании ключа может быть неудобно, можно использовать программу-агент, которую достаточно запустить перед началом работы
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ eval $(ssh-agent -s)
|
|
Agent pid 3805
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ ssh-add
|
|
Identity added: /c/Users/vikkt/.ssh/id_ed25519 (vikkt@Vika)
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ cat ~/.ssh/id_ed25519.pub
|
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPKlnFWPunMrqRAWni8+iXhJyBNMBiEjuWoOdZl5VQer vikkt@Vika
|
|
Затем в настройках аккаунта GitHub нужно добавить публичный ключ, который по умолчанию записывается в файл id_ed25519
|
|
|
|
Теперь добавим репозитарий, на который будем загружать хранилище git, и загрузим хранилище git на GitHub с помощью команды git push.
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git remote add origin git@uit.mpei.ru:ChernyukVS/cs-lab02.git
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git push -u origin main
|
|
Enumerating objects: 15, done.
|
|
Counting objects: 100% (15/15), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (13/13), done.
|
|
Writing objects: 100% (15/15), 1.99 KiB | 156.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 uit.mpei.ru:ChernyukVS/cs-lab02.git
|
|
* [new branch] main -> main
|
|
branch 'main' set up to track 'origin/main'.
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git remote -v
|
|
origin git@uit.mpei.ru:ChernyukVS/cs-lab02.git (fetch)
|
|
origin git@uit.mpei.ru:ChernyukVS/cs-lab02.git (push)
|
|
|
|
Получение проекта с сервера
|
|
К работе присоединяется Боб. Клонируем репозитарий с помощью git clone
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob
|
|
$ git clone http://uit.mpei.ru/git/ChernyukVS/cs-lab02.git
|
|
Cloning into 'cs-lab02'...
|
|
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.
|
|
|
|
Настроим хранилище Боба
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git config user.name 'bob(victoriaCS)'
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git config user.email 'CherniukVS@mpei.ru'
|
|
|
|
Совместная работа над проектом без конфликтов правок
|
|
Боб добавляет новый коммит, опережающий версию на сервере, и загружает его на GitHub
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git add main.cpp
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git commit -m 'code: вывод произведения'
|
|
[main 552905a] code: вывод произведения
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git push
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 418 bytes | 418.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/ChernyukVS/cs-lab02.git
|
|
daa19f7..552905a main -> main
|
|
|
|
Обновляем версию программы у Алисы. Для этого используем загрузку изменений с помощью git fetch. А затем переносим ветку main на скаченную версию с помощью git pull , который вызывает git fetch, поэтому его ручной вызов необязателен
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/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), 398 bytes | 99.00 KiB/s, done.
|
|
From uit.mpei.ru:ChernyukVS/cs-lab02
|
|
daa19f7..552905a main -> origin/main
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 552905a (origin/main, origin/HEAD) code: вывод произведения
|
|
* daa19f7 (HEAD -> main) code: игнорирование бинарных файлов
|
|
* a300ded code: вывод разности
|
|
* 0b91b8d code: вывод суммы
|
|
* 5a6462f build: add project file
|
|
* 3e087e4 code: заготовка программы
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git pull --ff-only
|
|
Updating daa19f7..552905a
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
Алиса вносит новое изменение, а Боб скачивает его.
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git commit -m 'code: вывод деления'
|
|
[main 63aa70e] code: вывод деления
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git push
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 404 bytes | 404.00 KiB/s, done.
|
|
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
|
|
remote: . Processing 1 references
|
|
remote: Processed 1 references in total
|
|
To uit.mpei.ru:ChernyukVS/cs-lab02.git
|
|
552905a..63aa70e main -> main
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/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), 384 bytes | 48.00 KiB/s, done.
|
|
From http://uit.mpei.ru/git/ChernyukVS/cs-lab02
|
|
552905a..63aa70e main -> origin/main
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git pull --ff-only
|
|
Updating 552905a..63aa70e
|
|
Fast-forward
|
|
main.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
Разрешение конфликтов правок при совместной работе
|
|
Теперь Алисаи Боб добавляют в программу печать максимума и минимума, а затем пробуют загрузить изменения репозитарий на сервере.
|
|
Вывод максимума
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git commit -m 'code: вывод максимума'
|
|
[main 05368e9] code: вывод максимума
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git push
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 412 bytes | 412.00 KiB/s, done.
|
|
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
|
|
remote: . Processing 1 references
|
|
remote: Processed 1 references in total
|
|
To uit.mpei.ru:ChernyukVS/cs-lab02.git
|
|
63aa70e..05368e9 main -> main
|
|
|
|
Вывод минимума
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git add main.cpp
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git commit -m 'code: вывод минимума'
|
|
[main 13fa6fe] code: вывод минимума
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git push
|
|
To http://uit.mpei.ru/git/ChernyukVS/cs-lab02.git
|
|
! [rejected] main -> main (fetch first)
|
|
error: failed to push some refs to 'http://uit.mpei.ru/git/ChernyukVS/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.
|
|
|
|
Загрузим версию с сервера.
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/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), 392 bytes | 39.00 KiB/s, done.
|
|
From http://uit.mpei.ru/git/ChernyukVS/cs-lab02
|
|
63aa70e..05368e9 main -> origin/main
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 13fa6fe (HEAD -> main) code: вывод минимума
|
|
| * 05368e9 (origin/main, origin/HEAD) code: вывод максимума
|
|
|/
|
|
* 63aa70e code: вывод деления
|
|
* 552905a code: вывод произведения
|
|
* daa19f7 code: игнорирование бинарных файлов
|
|
* a300ded code: вывод разности
|
|
* 0b91b8d code: вывод суммы
|
|
* 5a6462f build: add project file
|
|
* 3e087e4 code: заготовка программы
|
|
|
|
Ветка main раздвоилась
|
|
Объединим коммиты Боба и Алисы, поместив коммит Боба выше с помощью команды git rebase.
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git rebase origin/main
|
|
Auto-merging main.cpp
|
|
CONFLICT (content): Merge conflict in main.cpp
|
|
error: could not apply 13fa6fe... 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 13fa6fe... code: вывод минимума
|
|
|
|
Команда завершается с ошибкой из-за конфликта в файле с кодом main.cpp. Производный файл от файла Алисы и Боба записывается в рабочую копию с помеченными метками конфликта. Убираем метки конфликта и дорабатываем код так, чтобы программа компилировалась и работала. Затем загружаем изменения в индекс и продолжаем операцию git rebase с помощью флага - continue.
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main|REBASE 1/1)
|
|
$ git add main.cpp
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main|REBASE 1/1)
|
|
$ git rebase --continue
|
|
Successfully rebased and updated refs/heads/main.
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git log --oneline --decorate
|
|
0acbd36 (HEAD -> main, origin/main, origin/HEAD) code: вывод минимума
|
|
05368e9 code: вывод максимума
|
|
63aa70e code: вывод деления
|
|
552905a code: вывод произведения
|
|
daa19f7 code: игнорирование бинарных файлов
|
|
a300ded code: вывод разности
|
|
0b91b8d code: вывод суммы
|
|
5a6462f build: add project file
|
|
3e087e4 code: заготовка программы
|
|
|
|
|
|
Отправим изменения на сервер.
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/bob/project (main)
|
|
$ git push
|
|
Enumerating objects: 5, done.
|
|
Counting objects: 100% (5/5), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 417 bytes | 417.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/ChernyukVS/cs-lab02.git
|
|
05368e9..0acbd36 main -> main
|
|
|
|
Использование веток.
|
|
Алиса создаёт новую ветку с помощью для изменения типа переменных на вещественный. Начинает с коммита, когда добавлена печать максимума.
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git branch double
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git checkout double
|
|
Switched to branch 'double'
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (double)
|
|
$ git add main.cpp
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (double)
|
|
$ git commit -m 'code: изменён тип переменных с int на double'
|
|
[double 7d94bd6] code: изменён тип переменных с int на double
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
Затем переключается на ветку main и сихронизирует её.
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/lab02/alice/project (double)
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (double)
|
|
$ git checkout main
|
|
Switched to branch 'main'
|
|
Your branch is up to date with 'origin/main'.
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/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), 397 bytes | 56.00 KiB/s, done.
|
|
From uit.mpei.ru:ChernyukVS/cs-lab02
|
|
05368e9..0acbd36 main -> origin/main
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 7d94bd6 (double) code: изменён тип переменных с int на double
|
|
| * 0acbd36 (origin/main, origin/HEAD) code: вывод минимума
|
|
|/
|
|
* 05368e9 (HEAD -> main) code: вывод максимума
|
|
* 63aa70e code: вывод деления
|
|
* 552905a code: вывод произведения
|
|
* daa19f7 code: игнорирование бинарных файлов
|
|
* a300ded code: вывод разности
|
|
* 0b91b8d code: вывод суммы
|
|
* 5a6462f build: add project file
|
|
* 3e087e4 code: заготовка программы
|
|
|
|
|
|
Получаем одновременно две ветки. Объединяем их с помощью команды git merge. Вносим последние изменения и загружаем на GitHub.
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git merge double
|
|
Auto-merging main.cpp
|
|
Fast-forward
|
|
main.cpp | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
vikkt@Vika MINGW32 ~/Desktop/1 semestr lab/LAB2/alice/project (main)
|
|
$ git push
|
|
Enumerating objects: 10, done.
|
|
Counting objects: 100% (10/10), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (6/6), done.
|
|
Writing objects: 100% (6/6), 751 bytes | 751.00 KiB/s, done.
|
|
Total 6 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
|
|
remote: . Processing 1 references
|
|
remote: Processed 1 references in total
|
|
To uit.mpei.ru:ChernyukVS/cs-lab02.git
|
|
0acbd36..8903c62 main -> main
|
|
|
|
|