Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
1027 строки
63 KiB
Plaintext
1027 строки
63 KiB
Plaintext
Создадим папку alice mkdir alice
|
|
Создадим папку bob mkdir bob
|
|
Перейдем в папку alice cd alice
|
|
В папке alice создадим папку project mkdir project
|
|
Перейдем в папку project cd project
|
|
Перейдем из папки project на уровень выше - в папку alice cd ..
|
|
Перейдем в папку project cd project
|
|
Инициализируем репозитарий в текущем каталоге git init
|
|
Настроим репозитарий Алисы, чтобы комитить от своего имени git config user.name 'VolkovAA'
|
|
git config user.email 'VolkovAlA@mpei.ru'
|
|
Запускаем Visual Studio Code и создаем проект в репозитарии Алисы, собираем его. Просмотрим состояние рабочей копии
|
|
git status
|
|
|
|
Терминал:
|
|
aleksejvolkov@MacBook-Pro-Aleksej lab02 % mkdir alice
|
|
aleksejvolkov@MacBook-Pro-Aleksej lab02 % mkdir bob
|
|
aleksejvolkov@MacBook-Pro-Aleksej lab02 % cd alice
|
|
aleksejvolkov@MacBook-Pro-Aleksej alice % mkdir project
|
|
aleksejvolkov@MacBook-Pro-Aleksej alice % cd project
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % cd ..
|
|
aleksejvolkov@MacBook-Pro-Aleksej alice % cd project
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git init
|
|
Initialized empty Git repository in /Users/aleksejvolkov/Desktop/lab02/alice/project/.git/
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git config user.name 'VolkovAA'
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git config user.email 'VokovAlA@mpei.ru'
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git status
|
|
On branch master//на ветке мастер
|
|
|
|
No commits yet//нет коммитов
|
|
|
|
Untracked files: //неотслеживаемые файлы
|
|
(use "git add <file>..." to include in what will be committed)
|
|
|
|
main.cpp
|
|
project.cbp
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)//ничего не добавленно чтобы комитить, присутствуют неотслеживаемые файлы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Добавим файл main.cpp в отслеживаемые (в индекс): git add main.cpp
|
|
Просмотрим состояние рабочей копии git status
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add main.cpp
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git status
|
|
On branch master
|
|
|
|
No commits yet
|
|
|
|
Changes to be committed:
|
|
(use "git rm --cached <file>..." to unstage)//изменения которые должны быть закомичены
|
|
|
|
new file: main.cpp//новый файл
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
|
|
project.cbp
|
|
project.layout//потом кинем в игнор
|
|
|
|
|
|
|
|
Выполним коммит с файлом main.cpp и коротким сообщением: git commit -m 'code: заготовка программы'
|
|
Добавим файл project.cbp в отслеживаемые (в индекс): git add project.cbp
|
|
Выполним коммит с файлом main.cpp и темой build: git commit -m 'build: добавлен файл проекта'
|
|
Заменим тело функции main() на ввод двух чисел: cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
Просмотрим состояние рабочей копии git status
|
|
|
|
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -m 'code: заготовка программы'
|
|
[master (root-commit) 4280c8f] code: заготовка программы
|
|
1 file changed, 9 insertions(+)
|
|
create mode 100644 main.cpp
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add project.cbp
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -m 'build:добавлен файл проекта'
|
|
[master 46c0a2b] build:добавлен файл проекта
|
|
1 file changed, 42 insertions(+)
|
|
create mode 100644 project.cbp
|
|
|
|
|
|
|
|
int main()
|
|
{
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git status
|
|
On branch master
|
|
Changes not staged for commit:
|
|
(use "git add <file>..." to update what will be committed)
|
|
(use "git checkout -- <file>..." to discard changes in working directory)
|
|
|
|
modified: main.cpp//модификация main.cpp
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
|
|
.vscode/ //позже в игнор
|
|
project.layout //позже в игнор
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
|
|
|
|
|
|
Выберем файл, изменение которого должно войти в коммит git add main.cpp
|
|
Сделаем коммит
|
|
git commit -m "Ввод двух чисел"
|
|
В тело функции main() добавим cout << "A + B = " << a + b << '\n';
|
|
Добавим в индекс все изменения git add -u
|
|
Сделаем коммит
|
|
git commit -m "Вывод суммы"
|
|
Изменим тело функции main(), добавим << "A - B = " << a - b << '\n';
|
|
Добавим все изменения в индекс и сделаем коммит в один шаг git commit -a -m "Вывод суммы и разности"
|
|
Создадим в VisualStudio Code новый файл и запишем в него строку: /.vscode/ Сохраним файл в корне репозитарий под именем .gitignore Просмотрим состояние рабочей копии
|
|
git status
|
|
Каталог .vscode/ не отображается
|
|
В файл, где записан /.vscode, на следующей строчке запишем /project.layout Сохраним изменения Просмотрим состояние рабочей копии
|
|
git status
|
|
Каталог project.layout не отображается
|
|
Выберем файл, изменение которого должно войти в коммит git add .gitignore
|
|
Сделаем коммит с темой git commit -m "git"
|
|
Просмотрим журнал репозитария git log -stat
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
|
|
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add main.cpp
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -m 'Ввод двух чисел'
|
|
[master 11bf5ac] Ввод двух чисел
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add -u
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -m "Вывод суммы"
|
|
[master ac76e36] Вывод суммы
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -a -m "Вывод суммы и разности"
|
|
[master 478934b] Вывод суммы и разности
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git status
|
|
On branch master
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
|
|
.gitignore
|
|
project.layout
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git status
|
|
On branch master
|
|
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)
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add .gitignore
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -m 'git'
|
|
[master d604682] git
|
|
1 file changed, 2 insertions(+)
|
|
create mode 100644 .gitignore
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git log --stat
|
|
commit d604682c3d7fd438dd38936e75b85027b87674fb (HEAD -> master)
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 13:01:56 2023 +0300
|
|
|
|
git
|
|
|
|
.gitignore | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
commit 478934b9e4c8179d79bb2eb3c892417597bee756
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:29:07 2023 +0300
|
|
|
|
Вывод суммы и разности
|
|
|
|
main.cpp | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
commit ac76e36c12e9394a6b88db1d70b3f9c0fc7e03ec
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:27:49 2023 +0300
|
|
|
|
Вывод суммы
|
|
:...skipping...
|
|
commit d604682c3d7fd438dd38936e75b85027b87674fb (HEAD -> master)
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 13:01:56 2023 +0300
|
|
|
|
git
|
|
|
|
.gitignore | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
commit 478934b9e4c8179d79bb2eb3c892417597bee756
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:29:07 2023 +0300
|
|
|
|
Вывод суммы и разности
|
|
|
|
main.cpp | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
commit ac76e36c12e9394a6b88db1d70b3f9c0fc7e03ec
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:27:49 2023 +0300
|
|
|
|
Вывод суммы
|
|
|
|
main.cpp | 2 +-
|
|
:...skipping...
|
|
commit d604682c3d7fd438dd38936e75b85027b87674fb (HEAD -> master)
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 13:01:56 2023 +0300
|
|
|
|
git
|
|
|
|
.gitignore | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
commit 478934b9e4c8179d79bb2eb3c892417597bee756
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:29:07 2023 +0300
|
|
|
|
Вывод суммы и разности
|
|
|
|
main.cpp | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
commit ac76e36c12e9394a6b88db1d70b3f9c0fc7e03ec
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:27:49 2023 +0300
|
|
|
|
Вывод суммы
|
|
|
|
main.cpp | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
commit 11bf5acd396a3b0b90d6032a1b6392be128e1eff
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:26:50 2023 +0300
|
|
|
|
Ввод двух чисел
|
|
|
|
main.cpp | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
commit 46c0a2ba1a000f0392d26d271213cb26b5693974
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:16:05 2023 +0300
|
|
|
|
build:добавлен файл проекта
|
|
|
|
project.cbp | 42 ++++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 42 insertions(+)
|
|
|
|
commit 4280c8f4e348d08f1c39858432433c67dd3cbde8
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:13:32 2023 +0300
|
|
|
|
code: заготовка программы
|
|
|
|
main.cpp | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Просмотрим коммиты (компактно) git log --oneline --decorate
|
|
Просмотрим коммиты (компактно) для всех веток git log --oneline --decorate --all --graph
|
|
Найдем коммиты по теме build git log --grep 'build'
|
|
Найдем коммиты, затрагивающие project.cbp git log -- project.cbp
|
|
Просмотрим предпоследний коммит 1 способом git show HEAD~1
|
|
|
|
Это компактные коммиты:
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git log --oneline -decorate
|
|
|
|
d604682 (HEAD -> master) git
|
|
478934b Вывод суммы и разности
|
|
ac76e36 Вывод суммы
|
|
11bf5ac Ввод двух чисел
|
|
46c0a2b build:добавлен файл проекта
|
|
4280c8f code: заготовка программы
|
|
|
|
Коммиты для всех веток:
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git log --oneline --decorate --all --graph
|
|
|
|
* d604682 (HEAD -> master) git
|
|
* 478934b Вывод суммы и разности
|
|
* ac76e36 Вывод суммы
|
|
* 11bf5ac Ввод двух чисел
|
|
* 46c0a2b build:добавлен файл проекта
|
|
* 4280c8f code: заготовка программы
|
|
|
|
Коммит по теме build:
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git log --grep "build"
|
|
commit 46c0a2ba1a000f0392d26d271213cb26b5693974
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:16:05 2023 +0300
|
|
build:добавлен файл проекта
|
|
|
|
Коммит затрагивающий project.cbp:
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git log -- project.cbp
|
|
|
|
commit 46c0a2ba1a000f0392d26d271213cb26b5693974
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:16:05 2023 +0300
|
|
build:добавлен файл проекта
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Просмотрим предпоследний коммит 1 способом:
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git show HEAD~1
|
|
|
|
commit 478934b9e4c8179d79bb2eb3c892417597bee756
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:29:07 2023 +0300
|
|
Вывод суммы и разности
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 1015f28..c166ede 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,6 +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';
|
|
return 0;
|
|
}
|
|
|
|
|
|
Последний коммит 2 способом:
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git show master HEAD~1
|
|
commit d604682c3d7fd438dd38936e75b85027b87674fb (HEAD -> master)
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 13:01:56 2023 +0300
|
|
|
|
git
|
|
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..9938627
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,2 @@
|
|
+/.vscode/
|
|
+/project.layout
|
|
\ No newline at end of file
|
|
|
|
commit 478934b9e4c8179d79bb2eb3c892417597bee756
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:29:07 2023 +0300
|
|
|
|
Вывод суммы и разности
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 1015f28..c166ede 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,6 +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';
|
|
return 0;
|
|
}
|
|
|
|
|
|
Коммит 478934b третьим способом:
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git show 478934b
|
|
commit 478934b9e4c8179d79bb2eb3c892417597bee756
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 12:29:07 2023 +0300
|
|
|
|
Вывод суммы и разности
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 1015f28..c166ede 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,6 +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';
|
|
return 0;
|
|
}
|
|
|
|
|
|
Внесем изменения в main.cpp: добавим << "A * B = " << a * b << '\n';
|
|
Просмотрим изменения в рабочей копии: git diff
|
|
|
|
<< "A * B = " << a * b << '\n';
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git diff
|
|
diff --git a/main.cpp b/main.cpp
|
|
index c166ede..36482bb 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,6 +7,6 @@ int main()
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
- cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
|
|
+ cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << "A * B = " << a * b << '\n';
|
|
return 0;
|
|
}
|
|
Просмотрим изменения между самым первым коммитом и коммитом, добавляющим вывод разности git diff HEAD~5 HEAD~1
|
|
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git diff HEAD~5 HEAD~1
|
|
diff --git a/main.cpp b/main.cpp
|
|
index b4392ec..c166ede 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -4,6 +4,9 @@ using namespace std;
|
|
|
|
int main()
|
|
{
|
|
- cout << "Hello world!" << endl;
|
|
+ cout << "Enter A and B: ";
|
|
+ int a, b;
|
|
+ cin >> a >> b;
|
|
+ cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
|
|
return 0;
|
|
}
|
|
diff --git a/project.cbp b/project.cbp
|
|
new file mode 100644
|
|
index 0000000..a3c2c72
|
|
--- /dev/null
|
|
+++ b/project.cbp
|
|
@@ -0,0 +1,42 @@
|
|
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
|
+<CodeBlocks_project_file>
|
|
+ <FileVersion major="1" minor="6" />
|
|
+ <Project>
|
|
+ <Option title="project" />
|
|
+ <Option pch_mode="2" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Build>
|
|
+ <Target title="Debug">
|
|
+ <Option output="bin/Debug/project" prefix_auto="1" extension_auto="1" />
|
|
+ <Option object_output="obj/Debug/" />
|
|
+ <Option type="1" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Compiler>
|
|
+ <Add option="-g" />
|
|
+ </Compiler>
|
|
+ </Target>
|
|
+ <Target title="Release">
|
|
+ <Option output="bin/Release/project" prefix_auto="1" extension_auto="1" />
|
|
+ <Option object_output="obj/Release/" />
|
|
+ <Option type="1" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Compiler>
|
|
+ <Add option="-O2" />
|
|
+ </Compiler>
|
|
+ <Linker>
|
|
+ <Add option="-s" />
|
|
+ </Linker>
|
|
+ </Target>
|
|
+ </Build>
|
|
+ <Compiler>
|
|
+ <Add option="-Wall" />
|
|
+ <Add option="-fexceptions" />
|
|
+ </Compiler>
|
|
+ <Unit filename="main.cpp" />
|
|
+ <Extensions>
|
|
+ <envvars />
|
|
+ <code_completion />
|
|
+ <debugger />
|
|
+ </Extensions>
|
|
+ </Project>
|
|
+</CodeBlocks_project_file>
|
|
|
|
|
|
Выберем файл, изменение которого должно войти в коммит git add main.cpp
|
|
Сделаем коммит с темой git
|
|
git commit -m "Вывод произведения" Отменим последний коммит
|
|
git reset --hard HEAD~1
|
|
Добавим над функцией main() комментарий: //что-то что нужно убрать
|
|
Уберем изменения в main.cpp, откатив этот файл к состоянию в последнем коммите (HEAD): git checkout HEAD -- main.cpp
|
|
|
|
// что-то что нужно убрать
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add main.cpp
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -m "Вывод произведения"
|
|
[master bb67937] Вывод произведения
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git reset --hard HEAD~1
|
|
HEAD is now at d604682 git
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git checkout HEAD -- main.cpp
|
|
|
|
//что-то что нужно убрать - убралось!
|
|
|
|
Далее регестрируемся на http://uit.mpei.ru/ и делаем ключ
|
|
|
|
Запускаем агента, который работает в фоне и вводит ключ к другим программам
|
|
|
|
Добавляем ключ на сайт
|
|
Создаем репозиторий cs-lab02
|
|
|
|
настраиваем связь с удаленным хранилищем
|
|
|
|
|
|
Клонируем проект в боба
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej bob % git clone git@uit.mpei.ru:VolkovAA/cs-lab02.git project
|
|
Cloning into 'project'...
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
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.
|
|
|
|
Переходим в bob>>project
|
|
|
|
cd project
|
|
|
|
Инициализируем репозитарий в текущем каталоге git init
|
|
Настроим репозитарий Боба, чтобы коммиты были от его имени git config user.name 'VolkovAA'
|
|
git config user.email 'VolkovAlA@mpei.ru'
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git init
|
|
Reinitialized existing Git repository in /Users/aleksejvolkov/Desktop/lab02/bob/project/.git/
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git config user.name 'VolkovAA'
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git config user.email 'VolkovAlA@mpei.ru'
|
|
|
|
"На машине Боба" добавим в программу печать произведения чисел Выберем файл, изменение которого должно войти в коммит
|
|
git add main.cpp
|
|
Сделаем коммит
|
|
git commit -m "Вывод произведения" Просмотрим последний коммит
|
|
git show HEAD
|
|
|
|
<< "A * B =" << a * b << '\n'
|
|
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add main.cpp
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -m 'Вывод произведения'
|
|
On branch master
|
|
Your branch is up to date with 'origin/master'.
|
|
|
|
Changes not staged for commit:
|
|
modified: main.cpp
|
|
|
|
no changes added to commit
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git show HEAD
|
|
commit d604682c3d7fd438dd38936e75b85027b87674fb (HEAD -> master, origin/master, origin/HEAD)
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Mon May 15 13:01:56 2023 +0300
|
|
|
|
git
|
|
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..9938627
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,2 @@
|
|
+/.vscode/
|
|
+/project.layout
|
|
\ No newline at end of file
|
|
|
|
Отправим коммит на GitHub git push
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git push
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
Everything up-to-date
|
|
|
|
"На машине Алисы" выполним загрузку изменений git fetch
|
|
Просмотрим историю всех веток git log --oneline --decorate --all --graph
|
|
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git fetch
|
|
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
* d604682 (HEAD -> master, origin/master) git
|
|
* 478934b Вывод суммы и разности
|
|
* ac76e36 Вывод суммы
|
|
* 11bf5ac Ввод двух чисел
|
|
* 46c0a2b build:добавлен файл проекта
|
|
• 4280c8f code: заготовка программы
|
|
|
|
Продвинем ветку master к скачанной версии
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git pull --ff-only
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
Already up to date.
|
|
|
|
"От имени Алисы" добавим в программу печать деления
|
|
<< "A / B = " << a / b << '\n'
|
|
Выберем файл, изменение которого должно войти в коммит
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add main.cpp
|
|
|
|
Сделаем коммит "Вывод деления"
|
|
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -m "Вывод деления"
|
|
[master ec4c6d6] Вывод деления
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
Просмотрим последний коммит git show HEAD
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git show HEAD
|
|
commit ec4c6d645bf0ca14f6e1538557d0ceddb222ac1a (HEAD -> master)
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Sun May 28 19:58:49 2023 +0300
|
|
|
|
Вывод деления
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index c166ede..623b5c6 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,6 +7,6 @@ int main()
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
- cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
|
|
+ cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n' << "A / B = " << a / b << '\n';
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
Отправим коммит на GitHub
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git push
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
Counting objects: 3, done.
|
|
Delta compression using up to 10 threads.
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 402 bytes | 402.00 KiB/s, done.
|
|
Total 3 (delta 1), reused 0 (delta 0)
|
|
remote: . Processing 1 references
|
|
remote: Processed 1 references in total
|
|
To uit.mpei.ru:VolkovAA/cs-lab02.git
|
|
d604682..ec4c6d6 master -> master
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"На машине Боба" выполним загрузку изменений
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git fetch
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
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), done.
|
|
From uit.mpei.ru:VolkovAA/cs-lab02
|
|
d604682..ec4c6d6 master -> origin/master
|
|
|
|
|
|
Просмотрим историю всех веток
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git log --oneline --decorate --all --graph
|
|
* ec4c6d6 (HEAD -> master, origin/master) Вывод деления
|
|
* d604682 git
|
|
* 478934b Вывод суммы и разности
|
|
* ac76e36 Вывод суммы
|
|
* 11bf5ac Ввод двух чисел
|
|
* 46c0a2b build:добавлен файл проекта
|
|
• 4280c8f code: заготовка программы
|
|
|
|
Продвинем ветку master к скачанной версии
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git pull --ff-only
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
Already up to date.
|
|
|
|
|
|
|
|
"На машине Алисы" дополним программу печатью максимума Выберем файл, изменение которого должно войти в коммит git add main.cpp
|
|
|
|
f (a > b) cout << "max = " << a << '\n'; else cout << "max = " << b << '\n';
|
|
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add main.cpp
|
|
|
|
|
|
Сделаем коммит "Вывод максимума"
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -m "Вывод максимума"
|
|
[master 38c17ce] Вывод максимума
|
|
1 file changed, 1 insertion(+)
|
|
|
|
|
|
|
|
|
|
Просмотрим последний коммит
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git show HEAD
|
|
commit 38c17cebeb006f568a4fcab781a52af21fcf97e1 (HEAD -> master)
|
|
Author: VolkovAA <VokovAlA@mpei.ru>
|
|
Date: Sun May 28 20:44:40 2023 +0300
|
|
|
|
Вывод максимума
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 623b5c6..c26c435 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';
|
|
+ if (a > b) cout << "max = " << a << '\n'; else cout << "max = " << b << '\n';
|
|
return 0;
|
|
}
|
|
|
|
|
|
Отправим коммит на GitHub
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git push
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
Counting objects: 3, done.
|
|
Delta compression using up to 10 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)
|
|
remote: . Processing 1 references
|
|
remote: Processed 1 references in total
|
|
To uit.mpei.ru:VolkovAA/cs-lab02.git
|
|
ec4c6d6..38c17ce master -> master
|
|
|
|
|
|
|
|
|
|
"На машине Боба" дополним программу печатью минимума
|
|
|
|
if (a > b) cout << "min = " << b << '\n'; else cout << "min = " << a << '\n';
|
|
|
|
Выберем файл, изменение которого должно войти в коммит
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add main.cpp
|
|
|
|
|
|
|
|
|
|
Сделаем коммит "Вывод минимума"
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -m "Вывод минимума"
|
|
[master 6b45e05] Вывод минимума
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
Просмотрим последний коммит
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git show HEAD
|
|
commit 6b45e058a2317111af71c313b5b2520899115978 (HEAD -> master)
|
|
Author: VolkovAA <'VolkovAlA@mpei.ru'>
|
|
Date: Sun May 28 21:25:51 2023 +0300
|
|
|
|
Вывод минимума
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index c166ede..8a6d9a1 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,6 +7,8 @@ int main()
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
- cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n';
|
|
+ cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n' << "A * B =" << a * b << '\n';
|
|
+ if (a > b) cout << "min = " << b << '\n'; else cout << "min = " << a << '\n';
|
|
return 0;
|
|
}
|
|
+
|
|
|
|
|
|
Попытаемся отправить коммит на GitHub
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git push
|
|
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
To uit.mpei.ru:VolkovAA/cs-lab02.git
|
|
! [rejected] master -> master (fetch first)
|
|
error: failed to push some refs to 'git@uit.mpei.ru:VolkovAA/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.
|
|
|
|
|
|
|
|
|
|
Удаленный репозитарий не принимает изменений: коммит Боба основан не на последнем существующем коммите "На машине Боба" выполним загрузку изменений
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git fetch
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
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), done.
|
|
From uit.mpei.ru:VolkovAA/cs-lab02
|
|
ec4c6d6..38c17ce master -> origin/master
|
|
|
|
|
|
|
|
Просмотрим историю всех веток
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git log --oneline --decorate --all --graph
|
|
* 6b45e05 (HEAD -> master) Вывод минимума
|
|
| * 38c17ce (origin/master, origin/HEAD) Вывод максимума
|
|
| * ec4c6d6 Вывод деления
|
|
|/
|
|
* d604682 git
|
|
* 478934b Вывод суммы и разности
|
|
* ac76e36 Вывод суммы
|
|
* 11bf5ac Ввод двух чисел
|
|
* 46c0a2b build:добавлен файл проекта
|
|
• 4280c8f code: заготовка программы
|
|
|
|
|
|
|
|
Переместим коммит Боба поверх коммита Алисы, то есть поверх origin/master
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git rebase origin/master
|
|
First, rewinding head to replay your work on top of it...
|
|
Applying: Вывод минимума
|
|
Using index info to reconstruct a base tree...
|
|
M main.cpp
|
|
.git/rebase-apply/patch:14: new blank line at EOF.
|
|
+
|
|
warning: 1 line adds whitespace errors.
|
|
Falling back to patching base and 3-way merge...
|
|
Auto-merging main.cpp
|
|
CONFLICT (content): Merge conflict in main.cpp
|
|
error: Failed to merge in the changes.
|
|
Patch failed at 0001 Вывод минимума
|
|
The copy of the patch that failed is found in: .git/rebase-apply/patch
|
|
|
|
Resolve all conflicts manually, mark them as resolved with
|
|
"git add/rm <conflicted_files>", then run "git rebase --continue".
|
|
You can instead skip this commit: run "git rebase --skip".
|
|
To abort and get back to the state before "git rebase", run "git rebase --abort".
|
|
|
|
|
|
<<<<<<< HEAD
|
|
if (a > b) cout << "max = " << a << '\n'; else cout << "max = " << b << '\n';
|
|
=======
|
|
if (a > b) cout << "min = " << b << '\n'; else cout << "min = " << a << '\n';
|
|
>>>>>>> Вывод минимума
|
|
|
|
|
|
Удалим метки конфликта: <<<< ..., ... >>>> и =====
|
|
Добавим файл в индекс
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add main.cpp
|
|
|
|
|
|
Продолжим прерванную операцию rebase
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git rebase --continue
|
|
Applying: Вывод минимума
|
|
|
|
|
|
|
|
{
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
|
|
cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n' << "A / B = " << a / b << '\n';
|
|
if (a > b) cout << "max = " << a << '\n'; else cout << "max = " << b << '\n';
|
|
|
|
cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n' << "A * B =" << a * b << '\n';
|
|
if (a > b) cout << "min = " << b << '\n'; else cout << "min = " << a << '\n';
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
Отправим изменения на GitHub
|
|
|
|
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git push
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
Counting objects: 3, done.
|
|
Delta compression using up to 10 threads.
|
|
Compressing objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 451 bytes | 451.00 KiB/s, done.
|
|
Total 3 (delta 1), reused 0 (delta 0)
|
|
remote: . Processing 1 references
|
|
remote: Processed 1 references in total
|
|
To uit.mpei.ru:VolkovAA/cs-lab02.git
|
|
38c17ce..d6856bb master -> master
|
|
|
|
|
|
"На машине Алисы cоздадим ветку double
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git branch double
|
|
|
|
Переключимся на нее git checkout double
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git checkout double
|
|
Switched to branch 'double'
|
|
|
|
Заменим тип переменных a и b на double
|
|
double a, b;
|
|
|
|
|
|
Выберем файл, изменение которого должно войти в коммит git add main.cpp
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git add main.cpp
|
|
Сделаем коммит
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git commit -m "double"
|
|
[double 4f49138] double
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
aleksejvolkov@MacBook-Pro-Aleksej project %
|
|
|
|
Переключимся на ветку master
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git checkout master
|
|
Switched to branch 'master'
|
|
Your branch is up to date with 'origin/master'.
|
|
|
|
"На машинеAlice" выполним загрузку изменений git fetch
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git fetch
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
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), done.
|
|
From uit.mpei.ru:VolkovAA/cs-lab02
|
|
38c17ce..d6856bb master -> origin/master
|
|
|
|
|
|
|
|
|
|
Продвинем ветку master к скачанной версии
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git pull --ff-only
|
|
Enter passphrase for key '/Users/aleksejvolkov/.ssh/id_rsa':
|
|
Updating 38c17ce..d6856bb
|
|
Fast-forward
|
|
main.cpp | 6 ++++++
|
|
1 file changed, 6 insertions(+)
|
|
|
|
|
|
Просмотрим историю всех веток
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git log --oneline --decorate --all --graph
|
|
* 4f49138 (double) double
|
|
| * d6856bb (HEAD -> master, origin/master) Вывод минимума
|
|
|/
|
|
* 38c17ce Вывод максимума
|
|
* ec4c6d6 Вывод деления
|
|
* d604682 git
|
|
* 478934b Вывод суммы и разности
|
|
* ac76e36 Вывод суммы
|
|
* 11bf5ac Ввод двух чисел
|
|
* 46c0a2b build:добавлен файл проекта
|
|
• 4280c8f code: заготовка программы
|
|
|
|
|
|
Сольем ветку double в master git merge double
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git merge double
|
|
|
|
|
|
В результате слияния образуется специальный новый коммит (merge commit), к которому Git предлагает написать сообщение в редакторе
|
|
|
|
Просмотрим историю всех веток
|
|
git log --oneline --decorate --all -graph
|
|
|
|
aleksejvolkov@MacBook-Pro-Aleksej project % git log --oneline --decorate --all --graph
|
|
* 4f49138 (double) double
|
|
| * d6856bb (HEAD -> master, origin/master) Вывод минимума
|
|
|/
|
|
* 38c17ce Вывод максимума
|
|
* ec4c6d6 Вывод деления
|
|
* d604682 git
|
|
* 478934b Вывод суммы и разности
|
|
* ac76e36 Вывод суммы
|
|
* 11bf5ac Ввод двух чисел
|
|
* 46c0a2b build:добавлен файл проекта
|
|
* 4280c8f code: заготовка программы
|