Отчет по лабораторной работе № 2 "Система контроля версий Git" Выполнил: Кривов Д. А. Группа: А-01-24 Проверил: Кривов Д. А. Примечание: работа выполнялась на Windows. 1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02 2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02 $ ls krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02 $ 3. Создал каталоги Алисы и Боба, создал каталог "project", изучил команду "cd" в процессе: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02 $ mkdir alice krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02 $ mkdir bob krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02 $ cd bob krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/bob $ cd .. krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02 $ cd alice krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice $ mkdir project krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice $ ls project krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice $ cd project 4. Инициализировал репозитарий: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project $ git init Initialized empty Git repository in C:/Users/krivo/Desktop/lab02/alice/project/.git/ 5. Поменял имя ветки: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (master) $ git branch -m main 6. Посмотрел на скрытый каталог .git: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ ls -A .git/ bin/ main.cpp obj/ project.cbp 7. Добавил локальные настройки репозитария: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git config user.name 'Alice (KrivovDA)' krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git config user.email 'krivovda@mail.com' 8. Просмотрил состояние рабочей копии: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git status On branch main 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) 9. Добавил файл main.cpp в набор изменений, который войдет в очередной коммит: krivo@DESKTOP-73N9GOM 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 10. Выполнил коммит с файлом main.cpp: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'code: заготовка программы' [main (root-commit) fe6b1fb] code: заготовка программы~ 1 file changed, 9 insertions(+) create mode 100644 main.cpp 11. Добавил файл project.cbp в набор изменений, который войдет в очередной коммит: krivo@DESKTOP-73N9GOM 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 12.Выполнил коммит с файлом project.cbp: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'build: добавлен файл проекта' [main cc901d0] build: добавлен файл проекта 1 file changed, 40 insertions(+) create mode 100644 project.cbp 13. Заменил тело функции main(): cout << "Enter A and B: "; int a, b; cin >> a >> b; 14. Просмотрел состояние репозитария: krivo@DESKTOP-73N9GOM 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 Untracked files: (use "git add ..." to include in what will be committed) bin/ obj/ project.depend no changes added to commit (use "git add" and/or "git commit -a") 15. Выполнил коммит изменённых файлов: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -a -m "изменённое тело кода" [main ef032cd] изменённое тело кода 1 file changed, 3 insertions(+), 2 deletions(-) 16. Посмотрел состояние репозитария: krivo@DESKTOP-73N9GOM 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 Untracked files: (use "git add ..." to include in what will be committed) bin/ obj/ project.depend no changes added to commit (use "git add" and/or "git commit -a") 17. Выполнил коммит изменённых файлов: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -a -m "добавление вывода суммы и разности" [main 9f3751e] добавление вывода суммы и разности 1 file changed, 2 insertions(+) 18. Добавил игнорирование файлов: /bin /obj /project.depend 19. Посмотрел состояние репозитария: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git status On branch main Changes to be committed: (use "git restore --staged ..." to unstage) Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git restore ..." to discard changes in working directory) modified: .gitignore 20. Добавил файл .gitignore в набор изменений, который войдет в очередной коммит: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git add .gitignore 21. Выполнил коммит изменённых файлов: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -a -m "добавление игнорирования файлов" [main fcd0a28] добавление игнорирования файлов 1 file changed, 3 insertions(+) create mode 100644 .gitignore 22. Открыл журнал репозитария: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git log commit fcd0a280a628598f9b613fbb58bd78516062b535 (HEAD -> main) Author: Alice (KrivovDA) Date: Sun Apr 6 12:41:28 2025 +0300 добавление игнорирования файлов commit 9f3751e35a7db34789d2295007e7b175d719f65f Author: Alice (KrivovDA) Date: Sun Apr 6 12:28:02 2025 +0300 добавление вывода суммы и разности commit ef032cd1481985041c50e38988b57e1c91a545ee Author: Alice (KrivovDA) Date: Sun Apr 6 11:55:06 2025 +0300 изменённое тело кода commit cc901d01145c9bf3c624b68695228004b18da61f Author: Alice (KrivovDA) Date: Sun Apr 6 11:40:43 2025 +0300 build: добавлен файл проекта commit fe6b1fb1210428aeb4c50f5223f27e2ee35f2fc4 Author: Alice (KrivovDA) Date: Sun Apr 6 11:30:14 2025 +0300 code: заготовка программы~ 23. Посмотрел файлы, изменённые в коммитах: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --stat commit fcd0a280a628598f9b613fbb58bd78516062b535 (HEAD -> main) // Хэш коммита Author: Alice (KrivovDA) // Создатель коммита Date: Sun Apr 6 12:41:28 2025 +0300 // Дата создания коммита добавление игнорирования файлов // тема коммита .gitignore | 3 +++ // Файл | добавление строк 1 file changed, 3 insertions(+) // Изменение 1 файла, 3 вставки commit 9f3751e35a7db34789d2295007e7b175d719f65f Author: Alice (KrivovDA) Date: Sun Apr 6 12:28:02 2025 +0300 добавление вывода суммы и разности main.cpp | 2 ++ 1 file changed, 2 insertions(+) commit ef032cd1481985041c50e38988b57e1c91a545ee Author: Alice (KrivovDA) Date: Sun Apr 6 11:55:06 2025 +0300 изменённое тело кода main.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit cc901d01145c9bf3c624b68695228004b18da61f Author: Alice (KrivovDA) Date: Sun Apr 6 11:40:43 2025 +0300 build: добавлен файл проекта project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit fe6b1fb1210428aeb4c50f5223f27e2ee35f2fc4 Author: Alice (KrivovDA) Date: Sun Apr 6 11:30:14 2025 +0300 code: заготовка программы~ main.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) 24. Нашёл коммиты по теме build: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --grep "build:" commit cc901d01145c9bf3c624b68695228004b18da61f Author: Alice (KrivovDA) Date: Sun Apr 6 11:40:43 2025 +0300 build: добавлен файл проекта 25. Нашёл коммиты затрагивающие project.cbp: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git log -- project.cbp commit cc901d01145c9bf3c624b68695228004b18da61f Author: Alice (KrivovDA) Date: Sun Apr 6 11:40:43 2025 +0300 build: добавлен файл проекта 26. Просмотрел предпоследний коммит по отступу: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git show HEAD~1 commit 9f3751e35a7db34789d2295007e7b175d719f65f Author: Alice (KrivovDA) Date: Sun Apr 6 12:28:02 2025 +0300 добавление вывода суммы и разности diff --git a/main.cpp b/main.cpp index eac5055..65442c3 100644 --- a/main.cpp +++ b/main.cpp @@ -7,4 +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'; } 27. Добавил вывод произведения и посмотрел изменения в рабочей копии: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff diff --git a/main.cpp b/main.cpp index 65442c3..56f78ae 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' ; // Добавление строки } 28. Посмотрел разницу между самым первым коммитом и коммитом, добавляющим вывод разности: krivo@DESKTOP-73N9GOM MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff HEAD~4 HEAD~1 diff --git a/main.cpp b/main.cpp index b4392ec..65442c3 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 @@ + + + + +