diff --git a/Report lab02.txt b/Report lab02.txt new file mode 100644 index 0000000..33a4cd3 --- /dev/null +++ b/Report lab02.txt @@ -0,0 +1,1066 @@ +Отчет по лабораторной работе № 2 "Система контроля версий Git" + +Выполнил: Веретенников М.А. +Группа: А-01-23 +Проверил: Козлюк Д. А. + +Примечание: работа выполнялась на Windows. + +1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02 +$ + + + +2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто: + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02 +$ ls + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02 +$ + + + +3. Создал каталоги Алисы и Боба, создал каталог "project", изучил команду "cd" в процессе: + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02 +$ mkdir alice + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02 +$ mkdir bob + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02 +$ cd alice + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice +$ mkdir project + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice +$ cd project/ + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project +$ cd .. + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice +$ cd project + + + +4. Инициализировал репозитарий: + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project +$ git init +Initialized empty Git repository in C:/Users/al/Desktop/lab02/alice/project/.git/ + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ + +У меня имя ветки сразу стоит main, поэтому я не стал его менять. + + + +5. Настроил репозитарий Алисы: + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git config user.name 'Alice (VeretennikovMA)' + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git config user.email 'VeretennikovMA@mpei.ru' + + + +6. Запустил CodeBlocks и создал проект в репозитарии Алисы, а затем собрал его. + + + +7. Просмотрел состояние рабочей копии: + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git status +On branch main // Просматриваем ветку main + +No commits yet // На ней еще нет коммитов + +Untracked files: // Файлы, которые пока что не отслеживаются + (use "git add ..." to include in what will be committed) // Подсказка, как добавить коммиты + bin/ + main.cpp + obj/ + project.cbp // Файлы в ~/Desktop/lab02/alice/project + +nothing added to commit but untracked files present (use "git add" to track) // Еще ничего не закомиченно и неотслеживаемые файлы показаны(подсказка для добавления файлов коммита) + + + +8. Добавил файл main.cpp в индекс, проверил состояние рабочей копии и выполнил коммит с файлом main.cpp: + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git status +On branch main + +No commits yet + +Changes to be committed: + (use "git rm --cached ..." to unstage) + new file: main.cpp + +Untracked files: + (use "git add ..." to include in what will be committed) + bin/ + obj/ + project.cbp + +В состоянии рабочей копии изменились неотслеживаемые файлы, так как main.cpp начал отслеживаться и будет закоммичен в следующей строке: + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m "code: заготовка программы" +[main (root-commit) 0e4e5bc] code: заготовка программы + 1 file changed, 9 insertions(+) + create mode 100644 main.cpp + + + +9. Добавил файл project.cbp в индекс и сделал коммит с ним: + +al@DESKTOP-1QU05A3 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 + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m "build: добавлен файл проекта" +[main 16b433b] build: добавлен файл проекта + 1 file changed, 40 insertions(+) + create mode 100644 project.cbp + + + +10. Заменим тело функции main() на ввод двух чисел, просмотрел состояние репозитория и закоммитил изменения: + +cout << "Enter A and B: "; +int a, b; +cin >> a >> b; + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git status +On branch main +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) // Добавилась строка, которая подсказывает, как отменить измнения + modified: main.cpp // Изменились слова до ":" из "new file" в "modified" + +Untracked files: + (use "git add ..." to include in what will be committed) + bin/ + obj/ + +no changes added to commit (use "git add" and/or "git commit -a") // Добавилась строка о том, что у коммита пока ничего не поменялось + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add main.cpp + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m "code: ввод чисел a и b" +[main 5ace135] code: ввод чисел a и b + Date: Sun Mar 31 22:30:16 2024 +0300 + 1 file changed, 3 insertions(+), 2 deletions(-) + + + +11. Добавил в программу вывод суммы a и b, а затем закоммитил: + +int main() +{ + ... + cout << "A + B = " << a + b; +} + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add -u + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m "code: вывод суммы a и b" +[main 0f15157] code: вывод суммы a и b + 1 file changed, 1 insertion(+) + + + +12. Добавил в программу вывод суммы a и b и закоммитил: + +int main() +{ + ... + cout << "A + B = " << a + b << '\n' + << "A - B = " << a - b << '\n'; +} + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -a -m "code: вывод разности a и b" +[main ecc914b] code: вывод разности a и b + 1 file changed, 2 insertions(+), 1 deletion(-) + + + +13. Cоздал в CodeBlocks новый файл (.gitignore) и записал в него строки /bin /obj и /project.layout, проверил его на работоспособность и закоммитил: + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git status +On branch main +Untracked files: + (use "git add ..." to include in what will be committed) + .gitignore + project.depend + +nothing added to commit but untracked files present (use "git add" to track) + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git add .gitignore + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git commit -m "build: git" +[main fcbb050] build: git + 1 file changed, 2 insertions(+) + create mode 100644 .gitignore + + + +14. Попробовал команду git log и ее опции: + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log +commit fcbb050294df58e51c9d5fdf85069d8f0225023f (HEAD -> main) +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:48:55 2024 +0300 + + build: git + +commit ecc914b5b7dff2690f1b1c6efd20770ab6d16789 +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:41:09 2024 +0300 + + code: вывод разности a и b + +commit 0f1515740d9b5116d35dc69a1cf3834fdd198432 +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:38:48 2024 +0300 + + code: вывод суммы a и b + +commit 5ace135c1e0dfaf34cd2bba0fa076dfe4ad387c2 +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:30:16 2024 +0300 + + code: ввод чисел a и b + +commit 16b433bda8f6766cd2311c87c2a38a9171319957 +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:17:26 2024 +0300 + + build: добавлен файл проекта + +commit 0e4e5bc85b7ee16d4c1ab3b7cfe67f1bc0b52bcd +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:13:38 2024 +0300 + + code: заготовка программы + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --stat // Для последнего коммита: +commit fcbb050294df58e51c9d5fdf85069d8f0225023f (HEAD -> main) // Его хэш +Author: Alice (VeretennikovMA) // Автор и его email +Date: Sun Mar 31 22:48:55 2024 +0300 // Дата + + build: git // Сообщение + + .gitignore | 2 ++ // Изменённый(или добавленный) файл | количество изменённых строк (кратко) + 1 file changed, 2 insertions(+) // Количество изменённых файлов | количество изменённых строк + +commit ecc914b5b7dff2690f1b1c6efd20770ab6d16789 +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:41:09 2024 +0300 + + code: вывод разности a и b + + main.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 0f1515740d9b5116d35dc69a1cf3834fdd198432 +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:38:48 2024 +0300 + + code: вывод суммы a и b + + main.cpp | 1 + + 1 file changed, 1 insertion(+) + +commit 5ace135c1e0dfaf34cd2bba0fa076dfe4ad387c2 +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:30:16 2024 +0300 + + code: ввод чисел a и b + + main.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit 16b433bda8f6766cd2311c87c2a38a9171319957 +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:17:26 2024 +0300 + + build: добавлен файл проекта + + project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 40 insertions(+) + +commit 0e4e5bc85b7ee16d4c1ab3b7cfe67f1bc0b52bcd + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate +fcbb050 (HEAD -> main) build: git +ecc914b code: вывод разности a и b +0f15157 code: вывод суммы a и b +5ace135 code: ввод чисел a и b +16b433b build: добавлен файл проекта +0e4e5bc code: заготовка программы + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline --decorate --all --graph +* fcbb050 (HEAD -> main) build: git +* ecc914b code: вывод разности a и b +* 0f15157 code: вывод суммы a и b +* 5ace135 code: ввод чисел a и b +* 16b433b build: добавлен файл проекта +* 0e4e5bc code: заготовка программы + + + +15. Нашёл коммиты по теме build, а затем коммиты, затргивающие project.cbp: + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --grep "build:" +commit fcbb050294df58e51c9d5fdf85069d8f0225023f (HEAD -> main) +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:48:55 2024 +0300 + + build: git + +commit 16b433bda8f6766cd2311c87c2a38a9171319957 +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:17:26 2024 +0300 + + build: добавлен файл проекта + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log -- project.cbp +commit 16b433bda8f6766cd2311c87c2a38a9171319957 +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:17:26 2024 +0300 + + build: добавлен файл проекта + + + +16. Просмотрел предпоследний коммит тремя способами: + +1) git show HEAD~1 +2) git show main~1 +3) git show ecc914b + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git show HEAD~1 +commit ecc914b5b7dff2690f1b1c6efd20770ab6d16789 +Author: Alice (VeretennikovMA) +Date: Sun Mar 31 22:41:09 2024 +0300 + + code: вывод разности a и b + +diff --git a/main.cpp b/main.cpp +index 58aca4b..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; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + } + + + +17. Добавил в main.cpp печать произведения чисел, а затем просмотрел изменения в рабочей копии с различным количеством аргументов: + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/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'; // Добавленная строка + } + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git diff HEAD~2 +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..4c7473d +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++/bin ++/obj +diff --git a/main.cpp b/main.cpp +index 58aca4b..f372c78 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -7,5 +7,7 @@ int main() + cout << "Enter A and B: "; + int a, b; + cin >> a >> b; +- cout << "A + B = " << a + b; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n' ++ << "A * B = " << a * b << '\n'; + } + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git diff HEAD~2 HEAD +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..4c7473d +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++/bin ++/obj +diff --git a/main.cpp b/main.cpp +index 58aca4b..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; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + } + + + +18. Просмотрел изменения между самым первым коммитом и коммитом, добавляющим вывод разности (перед этим узнал хэши нужных коммитов): + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git log --oneline +fcbb050 (HEAD -> main) build: git +ecc914b code: вывод разности a и b +0f15157 code: вывод суммы a и b +5ace135 code: ввод чисел a и b +16b433b build: добавлен файл проекта +0e4e5bc code: заготовка программы + +al@DESKTOP-1QU05A3 MINGW64 ~/Desktop/lab02/alice/project (main) +$ git diff 0e4e5bc ecc914b +diff --git a/main.cpp b/main.cpp +index b4392ec..8435233 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -4,6 +4,9 @@ using namespace std; + + int main() + { +- cout << "Hello world!" << endl; +- return 0; ++ cout << "Enter A and B: "; ++ int a, b; ++ cin >> a >> b; ++ cout << "A + B = " << a + b << '\n' ++ << "A - B = " << a - b << '\n'; + } +diff --git a/project.cbp b/project.cbp +new file mode 100644 +index 0000000..99bb702 +--- /dev/null ++++ b/project.cbp +@@ -0,0 +1,40 @@ ++ ++ ++ ++ ++