Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
1130 строки
46 KiB
Plaintext
1130 строки
46 KiB
Plaintext
Отчет по лабораторной работе № 2 "Система контроля версий Git"
|
|
|
|
Выполнил: Князев С.К.
|
|
Группа: А-02-22
|
|
Проверил:
|
|
|
|
Примечание: работа выполнялась на Windows.
|
|
|
|
1. Создал на рабочем столе каталог lab02 для данной ЛР и запустите в нем Git Bash, приглашение:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02
|
|
$
|
|
|
|
2.Просмотрел файлы в рабочем каталоге командой ls. В каталоге lab02 пусто, поэтому ls ничего не выводит:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02
|
|
$ ls
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02
|
|
$
|
|
|
|
3. Создал каталоги Алисы и Боба, создал каталог "project",
|
|
изучил команду "cd" в процессе:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02
|
|
$ mkdir alice
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02
|
|
$ mkdir bob
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02
|
|
$ cd bob
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob
|
|
$ cd ..
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02
|
|
$ cd alice
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice
|
|
$ mkdir project
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice
|
|
$ ls
|
|
project/
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
|
|
4. Инициализировал репозиторий:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project
|
|
$ git init
|
|
Initialized empty Git repository in C:/Users/09062022/Desktop/lab02/alice/project/.git/
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$
|
|
|
|
Git создал ветку под названием master, что видно в приглашении терминала.
|
|
|
|
5. Посмотрел командой ls -A каталог .git в каталоге "project":
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ ls -A
|
|
.git/
|
|
|
|
6. Настроил репозитарий Алисы, чтобы коммиты были от ее имени. Указал данные пользователя, как в примере. Вместо IvanovII использовал свое имя и инициалы латиницей. Использовал свой университетский адрес почты:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git config user.name 'Alice (KnyazevSK)'
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git config user.email 'KnyazevSK@mpei.ru'
|
|
|
|
7. Запустил CodeBlocks и создал проект в репозитарии Алисы:
|
|
|
|
Project title: project
|
|
Folder to create project in: C:\Users\user\Desktop\lab02\alice
|
|
Project filename: project.cbp
|
|
Resulting filename: C:\Users\user\Desktop\lab02\alice\project\project.cbp
|
|
|
|
Сделал пути такие, как показано выше ↑.
|
|
Собрал проект.
|
|
|
|
8. Поменял имя ветки на main командой git branch -m main:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git branch -m main
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$
|
|
|
|
|
|
9. Вернулся в Git Bash, просмотрел состояние рабочей копии:
|
|
|
|
09062022@DESKTOP-28QQLDI 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
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
Пояснение для каждой строки вывода этой команды:
|
|
On branch main - На главной ветви
|
|
No commits yet - История не содержит еще коммитов
|
|
Untracked files: - Неотслеживаемые файлы:
|
|
(use "git add <file>..." to include in what will be committed) - (подсказка)использовать "git add <file>...", чтобы включить в то, что будет отслеживаться
|
|
bin/ - не отслеживаемый каталог , то есть не входит в набор изменений, который входит в очередной коммит
|
|
main.cpp - не отслеживаемый каталог , то есть не входит в набор изменений, который входит в очередной коммит
|
|
obj/ - не отслеживаемый каталог , то есть не входит в набор изменений, который входит в очередной коммит
|
|
project.cbp - не отслеживаемый каталог , то есть не входит в набор изменений, который входит в очередной коммит
|
|
nothing added to commit but untracked files present (use "git add" to track) - (подсказка) для фиксации ничего не добавлено, но присутствуют неотслеживаемые файлы (используйте "git add" для отслеживания)
|
|
|
|
10. Добавил файл main.cpp в индекс, то есть в набор изменений, который вошел в очередной коммит:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
11. Еще раз просмотрел состояние рабочей копии и пояснил в отчете изменения:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/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
|
|
|
|
Пояснение изменений: так как я добавил файл main.cpp в индекс, то есть в набор изменений, который вошел в очередной коммит, то при просмотре состояния рабочей копии файл main.cpp больше не отображается в неотслеживаемых файлах красным цветом, также перед main.cpp написано new file: и сам main.cpp теперь находится в разделе Changes to be committed: (Изменения, которые необходимо внести) , что означает , что файл main.cpp добавили в индекс, то есть в набор изменений, который вошел в очередной коммит. Также появилась строка (use "git rm --cached <file>..." to unstage) - (используйте "git rm --cached <файл>...", чтобы отменить загрузку), что означает , что можно написать git rm --cached main.cpp..., чтобы отменить загрузку , то есть добавления файла main.cpp в индекс, то есть в набор изменений, который вошел в очередной коммит.
|
|
|
|
12. Выполнил коммит с файлом main.cpp и коротким сообщением:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: заготовка программы'
|
|
[main (root-commit) 372576c] code: заготовка программы
|
|
1 file changed, 9 insertions(+)
|
|
create mode 100644 main.cpp
|
|
|
|
13. Добавил файл project.cbp в индекс и сделал коммит с ним, тема — build. Сообщение после темы придумал по смыслу изменений, для этого коммита подошло «добавлен файл проекта» или «add project file»:
|
|
|
|
09062022@DESKTOP-28QQLDI 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
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'build: добавлен файл проекта'
|
|
[main 82511eb] build: добавлен файл проекта
|
|
1 file changed, 40 insertions(+)
|
|
create mode 100644 project.cbp
|
|
|
|
14. Заменил тело функции main() на ввод двух чисел:
|
|
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
|
|
15. Просмотрел состояние репозитария (git status). Пояснил различия между случаем, когда добавлялся новый файл, и когда изменился существующий:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
Changes not staged for commit:
|
|
(use "git add <file>..." to update what will be committed)
|
|
(use "git restore <file>..." to discard changes in working directory)
|
|
modified: main.cpp
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
bin/
|
|
obj/
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
|
|
Пояснения различий между случаями , когда добавлялся новый файл, и когда изменился существующий:
|
|
|
|
когда добавлялся новый <файл> было написано в разделе Changes not staged for commit: new file: <файл> и строки , которые были описаны ранее при добавлении файла . А когда я изменил файл вместо new file: <файл> появилось modified: main.cpp то есть git указывает на то , что файл был изменен , также появилась строка (use "git restore <file>..." to discard changes in working directory) - (подсказка)(используйте "git restore <файл>...", чтобы отменить изменения в рабочем каталоге)
|
|
|
|
16. закоммичу изменения тримя способами, описанными ниже.
|
|
Способ 1. Сначала выбрал файлы, изменения которых должны войти в коммит, затем сделал коммит:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m "..."
|
|
[main e8bdaaf] ...
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
17. Добавил в программу вывод суммы a и b:
|
|
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b;
|
|
|
|
18. Способ 2. Добавил в индекс все изменения, затем сделал коммит:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add -u
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m "code: добавление суммы"
|
|
[main de7ba87] code: добавление суммы
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
19. Добавил в программу вывод разности a и b:
|
|
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
<< "A - B = " << a - b << '\n';
|
|
|
|
20. Способ 3. Добавил все изменения в индекс и сделал коммит в один шаг:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -a -m "code: добавление разности"
|
|
[main 8f191fa] code: добавление разности
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
21. Указал Git игнорировать присутствие каталога bin. Для этого создал в CodeBlocks новый файл (File → New... → Empty) и записал в него строку: /bin
|
|
|
|
22. Сохранил файл в корне репозитория под именем .gitignore, именно с точкой в начале.
|
|
|
|
23. Выполнил git status и увидел , что каталог bin не отображается:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
.gitignore
|
|
obj/
|
|
project.depend
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
24. Занес в список игнорируемых каталог obj убедился, что это удалось. Так как Я работал в CodeBlocks , настроил также игнорирование *.layout:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
.gitignore
|
|
project.depend
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
25. Создал коммит с .gitignore, тема — git:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add .gitignore
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'git: добавлен файл проекта'
|
|
[main 15aa4f7] git: добавлен файл проекта
|
|
1 file changed, 3 insertions(+)
|
|
create mode 100644 .gitignore
|
|
|
|
26. Показал командой git log журнал репозитория:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log
|
|
commit 15aa4f7df5e76cf648940d4821103fe531db3b31 (HEAD -> main)
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 21:42:58 2023 +0300
|
|
|
|
git: добавлен файл проекта
|
|
|
|
commit 8f191fa17c9fb9adcd9611220d17b79f10904f8f
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:27:45 2023 +0300
|
|
|
|
...
|
|
|
|
commit de7ba87d45fd5f2b6b443744a71fa9b8b855d24d
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:20:42 2023 +0300
|
|
|
|
...
|
|
|
|
commit e8bdaaf430e7e7bb7489569d29a361c31b6ea67a
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:15:04 2023 +0300
|
|
|
|
...
|
|
:
|
|
|
|
|
|
|
|
27. git log показывал текст с прокруткой. Чтобы выйти из этого режима, нажал q.
|
|
|
|
|
|
28. показал файлы измененные в коммитах с помощью команды git log --stat :
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --stat
|
|
commit 15aa4f7df5e76cf648940d4821103fe531db3b31 (HEAD -> main)
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 21:42:58 2023 +0300
|
|
|
|
git: добавлен файл проекта
|
|
|
|
.gitignore | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
commit 8f191fa17c9fb9adcd9611220d17b79f10904f8f
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:27:45 2023 +0300
|
|
|
|
...
|
|
|
|
main.cpp | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
commit de7ba87d45fd5f2b6b443744a71fa9b8b855d24d
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:20:42 2023 +0300
|
|
|
|
...
|
|
:
|
|
|
|
Для последнего коммита git log --stat выводит его хэш de7ba87d45fd5f2b6b443744a71fa9b8b855d24d, автора Alice (KnyazevSK ) <KnyazevSK @mpei.ru> и дату и время создания коммита Sat Mar 18 20:20:42 2023 +0300. Поскольку коммит не был изменен , то снизу кроме трех точек ничего нет , если бы в коммит были бы внесены какие - либо изменения, то появлялась бы надпись с количеством измененй , вставок и удалений по примеру такой:
|
|
main.cpp | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
|
|
29. git log --stat показывал текст с прокруткой. Чтобы выйти из этого режима, нажал q.
|
|
|
|
30. показал коммиты компактно с помощью git log --oneline --decorate . Показывает коммиты компактно (--oneline), а также показывает ссылки, концы веток и тэги (--decorate) :
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate
|
|
15aa4f7 (HEAD -> main) git: добавлен файл проекта
|
|
8f191fa ...
|
|
de7ba87 ...
|
|
e8bdaaf ...
|
|
82511eb build: добавлен файл проекта
|
|
372576c code: заготовка программы
|
|
|
|
31. Вывел тоже самое, что в пункте 30 , но для всех ветвей(--all) и коммиты отображались в терминали в виде дерева(--graph) с помощью git log --oneline --decorate --all --graph :
|
|
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 15aa4f7 (HEAD -> main) git: добавлен файл проекта
|
|
* 8f191fa ...
|
|
* de7ba87 ...
|
|
* e8bdaaf ...
|
|
* 82511eb build: добавлен файл проекта
|
|
* 372576c code: заготовка программы
|
|
|
|
32. Показал затрагивающее main.cpp с помощью git log -- main.cpp:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log -- main.cpp
|
|
commit 8f191fa17c9fb9adcd9611220d17b79f10904f8f
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:27:45 2023 +0300
|
|
|
|
...
|
|
|
|
commit de7ba87d45fd5f2b6b443744a71fa9b8b855d24d
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:20:42 2023 +0300
|
|
|
|
...
|
|
|
|
commit e8bdaaf430e7e7bb7489569d29a361c31b6ea67a
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:15:04 2023 +0300
|
|
|
|
...
|
|
|
|
commit 372576c4958c2514023e4d4ff0183a7790eccd11
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 19:09:57 2023 +0300
|
|
|
|
code: заготовка программы
|
|
:
|
|
|
|
33. git log -- main.cpp показывал текст с прокруткой. Чтобы выйти из этого режима, нажал q.
|
|
|
|
34. показал коммиты с code: в сообщении с помощью git log --grep "code:" :
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --grep "code:"
|
|
commit 372576c4958c2514023e4d4ff0183a7790eccd11
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 19:09:57 2023 +0300
|
|
|
|
code: заготовка программы
|
|
|
|
35. Нашел сначала коммиты по теме build, затем коммиты, затрагивающие project.cbp :
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --grep "build:"
|
|
commit 82511ebd057f69c11f484b3c855cf018838d8ff9
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 19:39:19 2023 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log -- project.cbp
|
|
commit 82511ebd057f69c11f484b3c855cf018838d8ff9
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 19:39:19 2023 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
36. Просмотрел последний коммит тремя эквивалентными способами:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show HEAD
|
|
commit 15aa4f7df5e76cf648940d4821103fe531db3b31 (HEAD -> main)
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 21:42:58 2023 +0300
|
|
|
|
git: добавлен файл проекта
|
|
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..d85abef
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,3 @@
|
|
+/bin
|
|
+/obj
|
|
+/*.layout
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show main
|
|
commit 15aa4f7df5e76cf648940d4821103fe531db3b31 (HEAD -> main)
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 21:42:58 2023 +0300
|
|
|
|
git: добавлен файл проекта
|
|
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..d85abef
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,3 @@
|
|
+/bin
|
|
+/obj
|
|
+/*.layout
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show d2e8af
|
|
fatal: ambiguous argument 'd2e8af': unknown revision or path not in the working tree.
|
|
Use '--' to separate paths from revisions, like this:
|
|
'git <command> [<revision>...] -- [<file>...]'
|
|
|
|
37. Для просмотра предыдущего коммита можно либо записать его хэш, либо указать, что я сделал, что от последнего нужно отступить на один коммит: HEAD~1.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show HEAD~1
|
|
commit 8f191fa17c9fb9adcd9611220d17b79f10904f8f
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:27:45 2023 +0300
|
|
|
|
...
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 1038844..0b16bab 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;
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
+
|
|
return 0;
|
|
}
|
|
|
|
38. Посмотрел предпоследний коммит тремя способами.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show HEAD~1
|
|
commit 8f191fa17c9fb9adcd9611220d17b79f10904f8f
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:27:45 2023 +0300
|
|
|
|
...
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 1038844..0b16bab 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;
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
+
|
|
return 0;
|
|
}
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show main~1
|
|
commit 8f191fa17c9fb9adcd9611220d17b79f10904f8f
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:27:45 2023 +0300
|
|
|
|
...
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 1038844..0b16bab 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;
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
+
|
|
return 0;
|
|
}
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show 8f191fa
|
|
commit 8f191fa17c9fb9adcd9611220d17b79f10904f8f
|
|
Author: Alice (KnyazevSK ) <KnyazevSK @mpei.ru>
|
|
Date: Sat Mar 18 20:27:45 2023 +0300
|
|
|
|
...
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 1038844..0b16bab 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;
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
+
|
|
return 0;
|
|
}
|
|
|
|
39. Внес изменения в main.cpp: добавил печать произведения чисел, но не стал пока делать коммит.
|
|
|
|
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';
|
|
|
|
40. Просмотрел изменения в рабочей копии:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 0b16bab..16a8731 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -8,7 +8,8 @@ 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';
|
|
|
|
return 0;
|
|
}
|
|
|
|
diff --git a/main.cpp b/main.cpp - В этой строке отображаются входные данные сравнения. Как видите, для сравнения переданы файлы a/main.cpp и b/main.cpp .
|
|
|
|
index 0b16bab..16a8731 100644 - В этой строке отображаются внутренние метаданные Git.Номера в этих выходных данных соответствуют хеш-идентификаторам версий объектов Git.
|
|
|
|
--- a/main.cpp
|
|
+++ b/main.cpp - Эти строки представляют собой легенду обозначений для каждого источника входных данных сравнения. В данном случае изменения из файла --- a/main.cpp помечаются символом ---, а из файла +++ b/main.cpp — символом +++.
|
|
|
|
@@ -8,7 +8,8 @@ int main()
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
- << "A - B = " << a - b << '\n';
|
|
+ << "A - B = " << a - b << '\n'
|
|
+
|
|
|
|
return 0;
|
|
} - Остальные выходные данные сравнения — это список сравниваемых фрагментов. При сравнении отображаются только разделы файла, в которых есть изменения. Фрагменты имеют собственную ограниченную семантику вывода.Первая строка — это заголовок фрагмента. К началу каждого фрагмента добавляется заголовок, ограниченный символами @@. Заголовок кратко описывает изменения в файле. В нашем примере заголовок -8.7 +8.8 означает, что имеются изменения в первой строке. Остальное содержимое фрагмента сравнения — это недавние изменения. Каждой измененной строке предшествует символ + или -, указывающий на источник входных данных сравнения.
|
|
|
|
41. Просмотрел изменения между самым первым коммитом и коммитом, добавляющим вывод разности.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff HEAD~5 HEAD
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..d85abef
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,3 @@
|
|
+/bin
|
|
+/obj
|
|
+/*.layout
|
|
diff --git a/main.cpp b/main.cpp
|
|
index b4392ec..0b16bab 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -4,6 +4,11 @@ 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';
|
|
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff HEAD~2 HEAD
|
|
diff --git a/.gitignore b/.gitignore
|
|
new file mode 100644
|
|
index 0000000..d85abef
|
|
--- /dev/null
|
|
+++ b/.gitignore
|
|
@@ -0,0 +1,3 @@
|
|
+/bin
|
|
+/obj
|
|
+/*.layout
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 1038844..0b16bab 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;
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
+
|
|
return 0;
|
|
}
|
|
|
|
42. Закоммитил изменения в рабочей копии (вывод произведения).
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add project.cbp
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'build: вывод произведения'
|
|
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)
|
|
project.depend
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
43. Предположим, необходимо отменить (откатить) этот коммит, то есть вернуться к предыдущему. Для этого воспользуемся командной git reset:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git reset
|
|
Unstaged changes after reset:
|
|
M main.cpp
|
|
|
|
44. Уберем изменения в main.cpp другим способом — откатив этот файл к состоянию в последнем коммите (HEAD):
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git checkout HEAD -- main.cpp
|
|
|
|
45. Зарегистрировался на Git УИТ под именем вида KnyazevSK (своя фамилия и инициалы, как почта МЭИ). Пароль придумайте самостоятельно.
|
|
|
|
46. Создать пару ключей:
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ ssh-keygen
|
|
Generating public/private rsa key pair.
|
|
Enter file in which to save the key (/c/Users/1/.ssh/id_rsa):
|
|
Created directory '/c/Users/1/.ssh'.
|
|
Enter passphrase (empty for no passphrase):
|
|
Enter same passphrase again:
|
|
Passphrases do not match. Try again.
|
|
Enter passphrase (empty for no passphrase):
|
|
Enter same passphrase again:
|
|
Your identification has been saved in /c/Users/1/.ssh/id_rsa
|
|
Your public key has been saved in /c/Users/1/.ssh/id_rsa.pub
|
|
The key fingerprint is:
|
|
SHA256:nDfv7xsKpLCAiBAPfNbKj3e87yXG804v6HlZGMtDvmc 09062022@DESKTOP-28QQLDI
|
|
The key's randomart image is:
|
|
+---[RSA 3072]----+
|
|
|+ . |
|
|
| = o . |
|
|
|. = . |
|
|
|o. + . . o |
|
|
|o . + o S B + |
|
|
| . + =.+ O . |
|
|
| . o o=oo* . |
|
|
| ...BB.E . |
|
|
| +=oo*++. |
|
|
+----[SHA256]-----+
|
|
|
|
47. Далее нужно ввести пароль, которым будет защищен ключ, и повторить его.
|
|
Запустить агент:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ eval $(ssh-agent -s)
|
|
Agent pid 246
|
|
|
|
48. Загрузить ключ (потребуется ввести пароль):
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ ssh-add
|
|
Enter passphrase for /c/Users/1/.ssh/id_rsa:
|
|
Identity added: /c/Users/1/.ssh/id_rsa (09062022@DESKTOP-28QQLDI )
|
|
|
|
49. Отображая ключ:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ cat ~/.ssh/id_rsa.pub
|
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyet7Ocrpz2DXS66S13FWhFL/1cB9MBc3qWhwwfrAvQhn7PENIZte7a34dbQvlqBo0Cq7kUYzibVaGTZ68U8lI8Unfx/NRZUhuidwG0GpMj0ApylbEyInRPqw9Hz1U8TH5ccN8VoMbj8/w0clZER9YTO3G8pEteCA4edjP4Dkdt51TpCMixRVPcGSgF3W/ErIHmHEwknBgA7688vkE2+UiZUjnyE7LEGRn9GFg+zvxeAgAXfjGC4ydxFZhc7rMNc5IMwdfppR2quGGSaiuF6kkLlUC23YC8oJSg0RHXk36vsv8oME3APf1wi6g89bv0fb2VsEaNp9brtzwm3Z4SN8HKMtQPL0EXwHKdO8Fis4Kml/MNnGiUNqagldVAruYEO4aMStXLXrXBo4JB/d6STyQIhs2OjP4KS+QdhSyU787/SfdQ58C6jOASoClq9gg+x8eO10SDeqcfxNbI0SFN3VBVnl/vUozNpYQasWHQDB9VGrhDjLS5bNKU5rxzc7j6iM= 09062022@DESKTOP-28QQLDI
|
|
|
|
50. Скопировать открытый ключ (текст) и добавить в список открытых ключей своей учетной записи. Это делается в настройках (меню пользователя в правом верхнем углу, пункт Settings), раздел SSH/GPG keys, панель Manage SSH keys, кнопка Add key.
|
|
|
|
51.Создайте репозитарий под названием cs-lab02.
|
|
|
|
52.После создания пустого репозитария будет показана страница с инструкциями, как настроить связь с удаленным хранилищем:
|
|
|
|
53.разделе Quick setup нужно выбрать вариант SSH.
|
|
В разделе …or push an existing repository from the command line даны команды, которые необходимо выполнить.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git remote add origin git@uit.mpei.ru:KnyazevSK /cs-lab02.git
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push -u origin main
|
|
The authenticity of host 'uit.mpei.ru (193.233.68.149)' can't be established.
|
|
ED25519 key fingerprint is SHA256:Q5w0UKEzQKA3J6NyMtjwCLvtAykoxdugIXjx6NwU4NA.
|
|
This key is not known by any other names.
|
|
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
|
|
Warning: Permanently added 'uit.mpei.ru' (ED25519) to the list of known hosts.
|
|
Enumerating objects: 18, done.
|
|
Counting objects: 100% (18/18), done.
|
|
Delta compression using up to 12 threads
|
|
Compressing objects: 100% (16/16), done.
|
|
Writing objects: 100% (18/18), 2.24 KiB | 1.12 MiB/s, done.
|
|
Total 18 (delta 2), reused 0 (delta 0), pack-reused 0
|
|
remote: . Processing 1 references
|
|
remote: Processed 1 references in total
|
|
To uit.mpei.ru:KnyazevSK /cs-lab02.git
|
|
* [new branch] main -> main
|
|
branch 'main' set up to track 'origin/main'.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$
|
|
|
|
54. Откройте новый терминал Git Bash в каталоге bob. Клонировал проект:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob
|
|
$ git clone git@uit.mpei.ru:KnyazevSK /cs-lab02.git project
|
|
Cloning into 'project'...
|
|
Enter passphrase for key '/c/Users/1/.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.
|
|
|
|
55. Перешел в каталог проекта «на машине Боба» (здесь и далее это означает работу во втором терминале и над файлами в bob/project):
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob
|
|
$ cd project
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$
|
|
|
|
56. «На машине Боба» настроил Git (git config) аналогично тому, как это делалось для Алисы в начале лабораторной работы.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git config user.name 'Bob (KnyazevSK )'
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git config user.email 'KnyazevSK @mpei.ru'
|
|
|
|
57. «На машине Боба» добавил в программу печать произведения чисел и сделал коммит.
|
|
|
|
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';
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git add project.cbp
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git commit -m 'build: вывод произведения'
|
|
On branch main
|
|
Your branch is up to date with 'origin/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
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
58. Обновите страницу в web-интерфейсе и убедитесь, что коммит попал в удаленный репозитарий.
|
|
|
|
59. «На машине Алисы» (то есть в первом терминале, в каталоге alice/project) выполните загрузку изменений:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git fetch
|
|
Enter passphrase for key '/c/Users/1/.ssh/id_rsa':
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$
|
|
|
|
60. Убедитесь, что в рабочей копии изменений еще не произошло.
|
|
|
|
Просмотрите историю всех веток:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 15aa4f7 (HEAD -> main, origin/main) git: добавлен файл проекта
|
|
* 8f191fa ...
|
|
* de7ba87 ...
|
|
* e8bdaaf ...
|
|
* 82511eb build: добавлен файл проекта
|
|
* 372576c code: заготовка программы
|
|
|
|
61. Продвиньте ветку main к скачанной версии:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git pull --ff-only
|
|
Enter passphrase for key '/c/Users/1/.ssh/id_rsa':
|
|
Already up to date.
|
|
|
|
62. Убедитесь, что рабочая копия проекта «у Алисы» соответствует версии «у Боба».
|
|
|
|
63. «От имени Алисы» добавьте в программу печать деления, сделайте коммит, отправьте его на сервер и получите новую версию «на машине Боба». Иначе говоря, повторите шаги выше, поменяв местами роли Алисы и Боба.
|
|
|
|
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';
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add project.cbp
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'build: вывод частного'
|
|
On branch main
|
|
Your branch is up to date with 'origin/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)
|
|
project.depend
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/1/.ssh/id_rsa':
|
|
Everything up-to-date
|
|
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git fetch
|
|
Enter passphrase for key '/c/Users/1/.ssh/id_rsa':
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 15aa4f7 (HEAD -> main, origin/main, origin/HEAD) git: добавлен файл проекта
|
|
* 8f191fa ...
|
|
* de7ba87 ...
|
|
* e8bdaaf ...
|
|
* 82511eb build: добавлен файл проекта
|
|
* 372576c code: заготовка программы
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git pull --ff-only
|
|
Enter passphrase for key '/c/Users/1/.ssh/id_rsa':
|
|
Already up to date.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$
|
|
|
|
64. «На машине Алисы» дополните программу печатью максимума, сделайте коммит и отправьте его на сервер.
|
|
|
|
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'
|
|
<< "A / B = " << a / b << '\n';
|
|
cout << "max = "
|
|
if (a>b)
|
|
cout << a;
|
|
else
|
|
{
|
|
cout << b;
|
|
}
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add project,cbp
|
|
fatal: pathspec 'project,cbp' did not match any files
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add project.cbp
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'build: печать максимума'
|
|
On branch main
|
|
Your branch is up to date with 'origin/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)
|
|
project.depend
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/1/.ssh/id_rsa':
|
|
Everything up-to-date
|
|
|
|
65. «На машине Боба» дополните программу печатью минимума, сделайте коммит и попытайтесь отправить его на сервер. Как можно видеть, удаленный репозитарий не принимает изменений: коммит Боба основан не на последнем существующем коммите.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git add project.cbp
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git commit -m 'build: печать минимума'
|
|
On branch main
|
|
Your branch is up to date with 'origin/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
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/1/.ssh/id_rsa':
|
|
Everything up-to-date
|
|
|
|
66. «От лица Боба» загрузите коммиты из удаленного хранилища и отобразите историю всех веток — результат нужно представить в отчете.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git fetch
|
|
Enter passphrase for key '/c/Users/1/.ssh/id_rsa':
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 15aa4f7 (HEAD -> main, origin/main, origin/HEAD) git: добавлен файл проекта
|
|
* 8f191fa ...
|
|
* de7ba87 ...
|
|
* e8bdaaf ...
|
|
* 82511eb build: добавлен файл проекта
|
|
* 372576c code: заготовка программы
|
|
|
|
67. Бобу нужно переместить свой коммит поверх коммита Алисы, то есть поверх origin/main:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git rebase origin/main
|
|
error: cannot rebase: You have unstaged changes.
|
|
error: Please commit or stash them.
|
|
|
|
68. Просмотрите состояние хранилища и поясните в отчете.
|
|
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n'
|
|
<< "A - B = " << a - b << '\n';
|
|
|
|
69. Необходимо самостоятельно:
|
|
|
|
Удалить метки конфликта: <<<< ..., ... >>>> и =====.
|
|
Отредактировать код так, чтобы он включал и правки Алисы, и правки Боба.
|
|
Убедиться, что программа компилируется и работает.
|
|
После того, как конфликт разрешен, нужно добавить файл в индекс и продолжить прерванную операцию rebase:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git add main.cpp
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git rebase --continue
|
|
fatal: No rebase in progress?
|
|
|
|
|
|
70. Убедитесь, что история хранилища теперь имеет желаемый вид (зафиксировав это в отчете) и отправьте изменения на сервер.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/bob/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/1/.ssh/id_rsa':
|
|
Everything up-to-date
|
|
|
|
71. Создайте ветку double на машине Алисы:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git branch double
|
|
|
|
72. Переключитесь на нее:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git checkout double
|
|
Switched to branch 'double'
|
|
M main.cpp
|
|
|
|
73. Замените тип переменных a и b на double и сделайте коммит.
|
|
|
|
double a, b;
|
|
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git add project.cbp
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git commit -m 'code: изименил на дабл тип переменных'
|
|
On branch double
|
|
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)
|
|
project.depend
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
74. Переключитесь на ветку main:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (double)
|
|
$ git checkout main
|
|
Switched to branch 'main'
|
|
M main.cpp
|
|
Your branch is up to date with 'origin/main'.
|
|
|
|
75. Синхронизируйте ветку main «на машине Алисы» с сервером. Просмотрите историю всех веток и занесите результат в отчет.
|
|
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/1/.ssh/id_rsa':
|
|
Everything up-to-date
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 15aa4f7 (HEAD -> main, origin/main, double) git: добавлен файл проекта
|
|
* 8f191fa ...
|
|
* de7ba87 ...
|
|
* e8bdaaf ...
|
|
* 82511eb build: добавлен файл проекта
|
|
* 372576c code: заготовка программы
|
|
|
|
76. Слейте ветку double в main:
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git merge double
|
|
Already up to date.
|
|
|
|
77. Отправьте изменения на сервер.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git push
|
|
Enter passphrase for key '/c/Users/1/.ssh/id_rsa':
|
|
Everything up-to-date
|
|
|
|
|
|
78. Просмотрите и занесите в отчет историю всех веток репозитария.
|
|
|
|
09062022@DESKTOP-28QQLDI MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --oneline --decorate --all --graph
|
|
* 15aa4f7 (HEAD -> main, origin/main, double) git: добавлен файл проекта
|
|
* 8f191fa ...
|
|
* de7ba87 ...
|
|
* e8bdaaf ...
|
|
* 82511eb build: добавлен файл проекта
|
|
* 372576c code: заготовка программы
|
|
|