Отчет по лабораторной работе № 2 "Система контроля версий Git" Выполнил: Овсянников Р. С. Группа: А-01-24 Проверил: Примечание: работа выполнялась на Windows. 1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02 $ 2. Cоздал каталоги Алисы и Боба, изучил команду cd. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02 $ mkdir alice abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02 $ mkdir bob abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02 $ cd alice abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ mkdir project abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ cd project abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project $ cd .. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ cd project abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project $ 3. Инициализировал репозитарий. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project $ git init Initialized empty Git repository in C:/Users/daemo/OneDrive/Рабочий стол/lab02/alice/project/.git/ abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ 4. Настроил репозитарий Алисы. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git config user.name 'Alice (OvsiannikovRS)' abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git config user.email 'OvsiannikovRS@mpei.ru' abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ 5. Создал проект в репозитарии Алисы, просмотрел состояние репозитария. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git status On branch master No commits yet (Еще нет коммитов) Untracked files: (Неотслеживаемые файлы) (use "git add ..." 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) (Ничего не добавленно в коммит но есть неотслеживаемые файлы) abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ 6. Добавил файл main.cpp в индекс и проверл состояние репозитария. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git add main.cpp abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git status On branch master 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) abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ 7. Закоммитил код и переименовал ветку в main. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git commit -m 'code: заготовка программы' [master (root-commit) 90e7c97] code: заготовка программы 1 file changed, 9 insertions(+) create mode 100644 main.cpp abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git branch -m main abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ 8. Добавил файл project.cbp в индекс и сделал комит с ним. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/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 abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m 'build: add project file' [main 5319550] build: add project file 1 file changed, 40 insertions(+) create mode 100644 project.cbp abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ 9. Изменил файл main.cpp, проверил статус репозитария. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/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 (изменен файл main.cpp) 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") (никакие изменения не добавлены в коммит) abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ 10. Добавил в вывод разности и суммы чисел А и В, сделал коммит с измененным файлом. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ add main.cpp bash: add: command not found abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add main.cpp abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m 'code: add sum A&B' [main 25f963d] code: add sum A&B 1 file changed, 4 insertions(+), 2 deletions(-) abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -a -m 'code: add difference A&B' [main 2fdb42d] code: add difference A&B 1 file changed, 3 insertions(+), 1 deletion(-) abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ 11. Создал файл .gitigniore и сделал с ним коммит. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git status On branch main Untracked files: (use "git add ..." to include in what will be committed) .gitignore obj/ project.depend nothing added to commit but untracked files present (use "git add" to track) abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/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) abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git add .gitignore abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git commit -m 'git: add file .gitignore' [main 04e463f] git: add file .gitignore 1 file changed, 2 insertions(+) create mode 100644 .gitignore abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ 12. Попробовал использовать все приведенные команды для просмотра истории изменений проекта. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --stat commit 04e463ff24c12adbe1e8aa6c252f7ac1eb39cc62 (HEAD -> main) (хеш коммита) Author: Alice (OvsiannikovRS) (автор и эл почта автора коммита) Date: Mon Apr 7 02:40:12 2025 +0300 (дата и время коммита) git: add file .gitignore (описание коммита) .gitignore | 2 ++ 1 file changed, 2 insertions(+) (количество измененных файлов) commit 2fdb42dffa15d390c57dac57ecee7eb64b160d77 Author: Alice (OvsiannikovRS) Date: Mon Apr 7 02:33:01 2025 +0300 code: add difference A&B main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 25f963d3e4eaf2c14316ca1d007c8a886c296b44 Author: Alice (OvsiannikovRS) Date: Mon Apr 7 02:30:42 2025 +0300 code: add sum A&B main.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 5319550073578cc85d3fa76162866183740d0b7f Author: Alice (OvsiannikovRS) Date: Mon Apr 7 02:22:34 2025 +0300 build: add project file abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --decorate 04e463f (HEAD -> main) git: add file .gitignore 2fdb42d code: add difference A&B 25f963d code: add sum A&B 5319550 build: add project file 90e7c97 code: заготовка программы abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 04e463f (HEAD -> main) git: add file .gitignore * 2fdb42d code: add difference A&B * 25f963d code: add sum A&B * 5319550 build: add project file * 90e7c97 code: заготовка программы abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ 13. Нашел коммиты по теме build, затем затрагивающие файл project.cbp abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log --grep 'build' commit 5319550073578cc85d3fa76162866183740d0b7f Author: Alice (OvsiannikovRS) Date: Mon Apr 7 02:22:34 2025 +0300 build: add project file abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git log -- project.cbp commit 5319550073578cc85d3fa76162866183740d0b7f Author: Alice (OvsiannikovRS) Date: Mon Apr 7 02:22:34 2025 +0300 build: add project file abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ 14. Просмотрел предпоследний коммит. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git show HEAD~1 commit 2fdb42dffa15d390c57dac57ecee7eb64b160d77 Author: Alice (OvsiannikovRS) Date: Mon Apr 7 02:33:01 2025 +0300 code: add difference A&B diff --git a/main.cpp b/main.cpp index 4364dbc..3ec5517 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 << '\n'; + cout << "A + B = " << a + b << '\n' + << "A - B = " << a - b << '\n'; + } abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ 15. Внес изменения в код, просмотрел изменения в рабочей копии. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git diff diff --git a/main.cpp b/main.cpp index 3ec5517..11e84f5 100644 --- a/main.cpp +++ b/main.cpp @@ -8,6 +8,7 @@ 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'; } abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ 16. Просмотрел изменения между первым коммитом и коммитом добавляющим вывод разности чисел А и В. abdxshba)))@abdxshba MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main) $ git diff 90e7c97 2fdb42d diff --git a/main.cpp b/main.cpp index b4392ec..3ec5517 100644 --- a/main.cpp +++ b/main.cpp @@ -4,6 +4,10 @@ using namespace std; int main() { - cout << "Hello world!" << endl; - return 0; + cout << "Enter A and B: "; + int a, b; + cin >> a >> b; + cout << "A + B = " << a + b << '\n' + << "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 @@ + + + + +