Отчет по лабораторной работе № 2 "Система контроля версий Git" Выполнил: Чагин С.А. Группа: А-03-22 Проверил: Примечание: работа выполнялась на Windows. 1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение: User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02 $ 2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто: User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02 $ ls 3. Создал каталоги Алисы и Боба, создал каталог "project", изучил команду "cd" в процессе: User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02 $ mkdir alice User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02 $ mkdir bob User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02 $ cd alice User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice $ mkdir project User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice $ cd project User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project $ cd .. User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice $ cd project 4. Инициализировал репозитарий: User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project $ git init Initialized empty Git repository in C:/Users/User/Desktop/lab02/alice/project/.git/ User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (master) $ git branch -m main User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ ls -A .git/ User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git config user.name 'Alice (ChaginSA)' User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git config user.email 'ChaginSA@mpei.ru' 5. Создание коммитов: User@WIN-AUMR7DE444E 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) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp User@WIN-AUMR7DE444E 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 При первом статусе у нас отобразились файлы которые не занесены под Git, далее мы занесли под Git main User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'code: заготовка программы' [main (root-commit) b853652] code: заготовка программы 1 file changed, 9 insertions(+) create mode 100644 main.cpp User@WIN-AUMR7DE444E 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 User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'build: Добавлен файл проекта' [main 1e4721b] build: Добавлен файл проекта 1 file changed, 40 insertions(+) create mode 100644 project.cbp 6. Создание коммитов с изменениями: User@WIN-AUMR7DE444E 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/ no changes added to commit (use "git add" and/or "git commit -a") Показывает что были изменения но мы не зафиксировали их User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: Ввод двух чисел" [main 5f3f368] code: Ввод двух чисел 1 file changed, 4 insertions(+), 2 deletions(-) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git add -u User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: Вывод суммы" [main 1d36560] code: Вывод суммы 1 file changed, 1 insertion(+), 1 deletion(-) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -a -m "code: Вывод суммы и разности" [main e02b014] code: Вывод суммы и разности 1 file changed, 2 insertions(+), 1 deletion(-) 7. Игнорирование файлов User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git status On branch main Untracked files: (use "git add ..." to include in what will be committed) .gitignore bin/ obj/ project.depend nothing added to commit but untracked files present (use "git add" to track) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/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) User@WIN-AUMR7DE444E 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) User@WIN-AUMR7DE444E 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) Игнорируем файлы и создаем коммит User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git add .gitignore User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "git: Игнорирование файлов" [main fa2916c] git: Игнорирование файлов 1 file changed, 3 insertions(+) create mode 100644 .gitignore 8.Просмотр истории User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --stat commit fa2916cd0d74186a7d60194c84b994f52e683b15 (HEAD -> main) Author: Alice (ChaginSA) Date: Sat Apr 22 19:20:27 2023 +0300 git: Игнорирование файлов .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit e02b014467d1846716766c0f25ea828445635984 Author: Alice (ChaginSA) Date: Sat Apr 22 19:16:43 2023 +0300 code: Вывод суммы и разности main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1d36560076233c7bad99310093533c5c32d9d7ae Author: Alice (ChaginSA) Date: Sat Apr 22 19:14:57 2023 +0300 Послелдний коммит показывает сколько файлов изменено и сколько вставок сделано User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate fa2916c (HEAD -> main) git: Игнорирование файлов e02b014 code: Вывод суммы и разности 1d36560 code: Вывод суммы 5f3f368 code: Ввод двух чисел 1e4721b build: Добавлен файл проекта b853652 code: заготовка программы User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * fa2916c (HEAD -> main) git: Игнорирование файлов * e02b014 code: Вывод суммы и разности * 1d36560 code: Вывод суммы * 5f3f368 code: Ввод двух чисел * 1e4721b build: Добавлен файл проекта * b853652 code: заготовка программы Найдем коммит по теме build, а затем коммиты затрагивающие project.cbp User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --grep "build" commit 1e4721b04dc302751cb9d509a277cd4af4f7da1e Author: Alice (ChaginSA) Date: Sat Apr 22 19:11:15 2023 +0300 build: Добавлен файл проекта User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git log -- project.cbp commit 1e4721b04dc302751cb9d509a277cd4af4f7da1e Author: Alice (ChaginSA) Date: Sat Apr 22 19:11:15 2023 +0300 build: Добавлен файл проекта 9.Просмотр коммитов User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git show HEAD commit fa2916cd0d74186a7d60194c84b994f52e683b15 (HEAD -> main) Author: Alice (ChaginSA) Date: Sat Apr 22 19:20:27 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 User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git show main commit fa2916cd0d74186a7d60194c84b994f52e683b15 (HEAD -> main) Author: Alice (ChaginSA) Date: Sat Apr 22 19:20:27 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 User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git show fa2916cd0d74186a7d60194c84b994f52e683b15 commit fa2916cd0d74186a7d60194c84b994f52e683b15 (HEAD -> main) Author: Alice (ChaginSA) Date: Sat Apr 22 19:20:27 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 Просмотрел предпоследний коммит тремя способами (в отчете зафиксировал результат единожды) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git show HEAD~1 commit e02b014467d1846716766c0f25ea828445635984 Author: Alice (ChaginSA) Date: Sat Apr 22 19:16:43 2023 +0300 code: Вывод суммы и разности diff --git a/main.cpp b/main.cpp index df16384..07175ce 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 << '\n'; +cout << "A + B = " << a + b << '\n' + << "A - B = " << a - b << '\n'; } 10.Просмотр изменений User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff diff --git a/main.cpp b/main.cpp index 07175ce..e44f73b 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'; } Нам показали что строка А-В изменилась, добавилась строка A * B User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff HEAD~5 HEAD~1 diff --git a/main.cpp b/main.cpp index b4392ec..07175ce 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 Изменение между 1 коммитом и коммитом добавляющим вывод разности 10.Откат изменений Добавляю коммит произведения User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: Вывод произведения" [main 429b049] code: Вывод произведения 1 file changed, 2 insertions(+), 1 deletion(-) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git reset --hard HEAD~1 HEAD is now at fa2916c git: Игнорирование файлов User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git checkout HEAD -- main.cpp 11.Обмен кодом через удаленное хранилище Настройка SSH User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/User/.ssh/id_rsa): /c/Users/User/.ssh/id_rsa already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/User/.ssh/id_rsa Your public key has been saved in /c/Users/User/.ssh/id_rsa.pub The key fingerprint is: SHA256:X7kQJLxztEA6NPCJt/MpWKsu9AFOEWXXitoUjNSfTM0 User@WIN-AUMR7DE444E The key's randomart image is: +---[RSA 3072]----+ | .o*+.+*o . | | o.+=.+Eo. | | ..**o +.. | | o o.=oo o. . | | o = + So. o | | + oo + o o . | | . ...o o . . | | . .. . | | oo | +----[SHA256]-----+ User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ eval $(ssh-agent -s) Agent pid 1819 User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ ssh-add Enter passphrase for /c/Users/User/.ssh/id_rsa: Identity added: /c/Users/User/.ssh/id_rsa (User@WIN-AUMR7DE444E) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3qUsSQ8ofDQwsdrmYP9dgHvCJSegh+8mrc/8oLLf/tpr8O0L+1SPfYghN91xhs+8wysSRwLbR3Z4T0GGsuTQe9SuMw9dVWwTL7Fu2n4s5rsf2UNY9YpXHK5bjMED0X8RaAzOteDRwQs6pWP9krETMU4R9DugH0K9OsGt5EUEtQuhntvx0G3BI+hLusi9B8UHkIPGEGWcivYd9rUW87lqBBzccjBQC8frNEBX7LRw4bWE0h5i7G4via+/4OIarihWhT4oiIC4OldjSpVNp/8ItvPUMs3akmltPFCep4K+mOXTiY5UeWKfbT7H1u70xNygjyDHwim8nmCeEP2D6Epn9Zi1hsQ0EKMQP8in8Rs4kBr0Z0d77nlzoJj3gBkxXNt5B75osHDbKqKE+AgBEX5KYzQOje8gJL4RAyMpgshQqSkqUOSlUcBIFE7lBjf6Bsu1FOEVaHqbde9TiPg8IG2RTEbAHauJXd8Dim2qeVV5aFu4AYTHrLLHX80JCDjV8RRk= User@WIN-AUMR7DE444E 11.Отправка проекта на сервер User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git remote add origin git@uit.mpei.ru:ChaginSA/cs-lab02.git User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git push -u origin main Enumerating objects: 18, done. Counting objects: 100% (18/18), done. Delta compression using up to 8 threads Compressing objects: 100% (16/16), done. Writing objects: 100% (18/18), 2.30 KiB | 589.00 KiB/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:ChaginSA/cs-lab02.git * [new branch] main -> main branch 'main' set up to track 'origin/main'. User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git remote -v origin git@uit.mpei.ru:ChaginSA/cs-lab02.git (fetch) origin git@uit.mpei.ru:ChaginSA/cs-lab02.git (push) 12.Получение проекта с сервера User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob $ git clone git@uit.mpei.ru:ChaginSA/cs-lab02.git project Cloning into 'project'... Enter passphrase for key '/c/Users/User/.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. User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob $ cd project Настраиваем конфиг Боба User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git init Reinitialized existing Git repository in C:/Users/User/Desktop/lab02/bob/project/.git/ User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git config user.name 'Bob (ChaginSA)' User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git config user.email 'ChaginSA@mpei.ru' 13. Совместная работа над проектом без конфликтов правок Коммит на машине боба User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git add main.cpp User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git commit -m "code: Вывод произведения" [main 53821c6] code: Вывод произведения 1 file changed, 2 insertions(+), 1 deletion(-) Убедимся, что последний коммит сделан от имени Боба User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git show HEAD commit 53821c6393e8903f65297fb746b69e77227094a5 (HEAD -> main) Author: Bob (ChaginSA) Date: Sat Apr 22 19:39:23 2023 +0300 code: Вывод произведения diff --git a/main.cpp b/main.cpp index 07175ce..e44f73b 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'; } Пушим с машины Боба User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git push Enter passphrase for key '/c/Users/User/.ssh/id_rsa': Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 412 bytes | 412.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:ChaginSA/cs-lab02.git fa2916c..53821c6 main -> main Загрузим изменения на машине Алисы User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git fetch 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), 392 bytes | 2.00 KiB/s, done. From uit.mpei.ru:ChaginSA/cs-lab02 fa2916c..53821c6 main -> origin/main User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 53821c6 (origin/main) code: Вывод произведения * fa2916c (HEAD -> main) git: Игнорирование файлов * e02b014 code: Вывод суммы и разности * 1d36560 code: Вывод суммы * 5f3f368 code: Ввод двух чисел * 1e4721b build: Добавлен файл проекта * b853652 code: заготовка программы Продвинем ветку main к скачанной версии User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git pull --ff-only Updating fa2916c..53821c6 Fast-forward main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Делаем коммит с машины Алисы User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: Вывод деления" [main 70e9293] code: Вывод деления 1 file changed, 3 insertions(+), 1 deletion(-) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git show HEAD commit 70e929378b3176959e4be4e1e5690610f2ffb5eb (HEAD -> main) Author: Alice (ChaginSA) Date: Sat Apr 22 19:44:01 2023 +0300 code: Вывод деления diff --git a/main.cpp b/main.cpp index e44f73b..112a643 100644 --- a/main.cpp +++ b/main.cpp @@ -9,5 +9,7 @@ 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' + << "A / B = " << a / b << '\n'; + ; } User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 407 bytes | 407.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:ChaginSA/cs-lab02.git 53821c6..70e9293 main -> main User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git fetch Enter passphrase for key '/c/Users/User/.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), 387 bytes | 1024 bytes/s, done. From uit.mpei.ru:ChaginSA/cs-lab02 53821c6..70e9293 main -> origin/main User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --oneline --decorate --all --graph * 70e9293 (origin/main, origin/HEAD) code: Вывод деления * 53821c6 (HEAD -> main) code: Вывод произведения * fa2916c git: Игнорирование файлов * e02b014 code: Вывод суммы и разности * 1d36560 code: Вывод суммы * 5f3f368 code: Ввод двух чисел * 1e4721b build: Добавлен файл проекта * b853652 code: заготовка программы User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git pull --ff-only Enter passphrase for key '/c/Users/User/.ssh/id_rsa': Updating 53821c6..70e9293 Fast-forward main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 13.Разрешение конфликтов правок при совместной работе С машины Алисы добавим вывод максимума User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git add main.cpp User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "code: Вывод максимума" [main a73e5c1] code: Вывод максимума 1 file changed, 2 insertions(+), 2 deletions(-) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git show HEAD commit a73e5c1d017fd80b180052078b66b5000d1a8a82 (HEAD -> main) Author: Alice (ChaginSA) Date: Sat Apr 22 19:50:27 2023 +0300 code: Вывод максимума diff --git a/main.cpp b/main.cpp index 112a643..822000f 100644 --- a/main.cpp +++ b/main.cpp @@ -10,6 +10,6 @@ cin >> a >> b; cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n' << "A * B = " << a * b << '\n' - << "A / B = " << a / b << '\n'; - ; + << "A / B = " << a / b << '\n' + << "max = " << max (a,b) << '\n'; } User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 412 bytes | 412.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:ChaginSA/cs-lab02.git 70e9293..a73e5c1 main -> main С машины Боба добавим вывод минимума User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git add main.cpp User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git commit -m "Вывод минимума" [main f0a1360] Вывод минимума 1 file changed, 2 insertions(+), 2 deletions(-) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git show HEAD commit f0a136035b8ec4584bc51d68adb232ddff9d8f29 (HEAD -> main) Author: Bob (ChaginSA) Date: Sat Apr 22 19:52:24 2023 +0300 Вывод минимума diff --git a/main.cpp b/main.cpp index 112a643..0445ec3 100644 --- a/main.cpp +++ b/main.cpp @@ -10,6 +10,6 @@ cin >> a >> b; cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n' << "A * B = " << a * b << '\n' - << "A / B = " << a / b << '\n'; - ; + << "A / B = " << a / b << '\n' + << "min = " << min (a,b) << '\n'; } User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git push Enter passphrase for key '/c/Users/User/.ssh/id_rsa': To uit.mpei.ru:ChaginSA/cs-lab02.git ! [rejected] main -> main (fetch first) error: failed to push some refs to 'uit.mpei.ru:ChaginSA/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. User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git fetch Enter passphrase for key '/c/Users/User/.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), 392 bytes | 2.00 KiB/s, done. From uit.mpei.ru:ChaginSA/cs-lab02 70e9293..a73e5c1 main -> origin/main User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --oneline --decorate --all –graph fatal: ambiguous argument '–graph': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]' User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --oneline --decorate --all --graph * f0a1360 (HEAD -> main) Вывод минимума | * a73e5c1 (origin/main, origin/HEAD) code: Вывод максимума |/ * 70e9293 code: Вывод деления * 53821c6 code: Вывод произведения * fa2916c git: Игнорирование файлов * e02b014 code: Вывод суммы и разности * 1d36560 code: Вывод суммы * 5f3f368 code: Ввод двух чисел * 1e4721b build: Добавлен файл проекта * b853652 code: заготовка программы Ветки main и origin/HEAD разошлись Пробуем переместить коммит Боба поверх комммита Алисы User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main) $ git rebase origin/main Auto-merging main.cpp CONFLICT (content): Merge conflict in main.cpp error: could not apply f0a1360... Вывод минимума hint: Resolve all conflicts manually, mark them as resolved with hint: "git add/rm ", then run "git rebase --continue". hint: You can instead skip this commit: run "git rebase --skip". hint: To abort and get back to the state before "git rebase", run "git rebase --abort". Could not apply f0a1360... Вывод минимума Команда завершается с ошибкой, сообщающей о конфликте в main.cpp Из-за конфликта версий HEAD переместился на другую ветку. Удалил метки конфликта: <<<< ..., ... >>>> и =====. Отредактировал код так, чтобы он включал и правки Алисы, и правки Боба. Убедился, что программа компилируется и работает. Добавляю файл в индекс и продолжаю прерванную операцию User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1) $ git add main.cpp User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/bob/project (main|REBASE 1/1) $ git rebase --continue [detached HEAD 860c4d4] Вывод минимума 1 file changed, 2 insertions(+), 1 deletion(-) Successfully rebased and updated refs/heads/main. 14.Использование веток User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git branch double User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git checkout double Switched to branch 'double' M project.cbp User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (double) $ git add main.cpp User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (double) $ git commit -m "code: Новый тип" [double 2df285a] code: Новый тип 1 file changed, 1 insertion(+), 1 deletion(-) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (double) $ git checkout main Switched to branch 'main' M project.cbp Your branch is up to date with 'origin/main'. Синхронизирую ветку main «на машине Алисы» с сервером User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git fetch 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), 386 bytes | 1024 bytes/s, done. From uit.mpei.ru:ChaginSA/cs-lab02 a73e5c1..860c4d4 main -> origin/main User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git pull --ff-only Updating a73e5c1..860c4d4 Fast-forward main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * 2df285a (double) code: Новый тип | * 860c4d4 (HEAD -> main, origin/main) Вывод минимума |/ * a73e5c1 code: Вывод максимума * 70e9293 code: Вывод деления * 53821c6 code: Вывод произведения * fa2916c git: Игнорирование файлов * e02b014 code: Вывод суммы и разности * 1d36560 code: Вывод суммы * 5f3f368 code: Ввод двух чисел * 1e4721b build: Добавлен файл проекта * b853652 code: заготовка программы Сливаю ветку double в main User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git merge double warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it Auto-merging main.cpp Merge made by the 'ort' strategy. main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph * e802f4d (HEAD -> main) Merge branch 'double' |\ | * 2df285a (double) code: Новый тип * | 860c4d4 (origin/main) Вывод минимума |/ * a73e5c1 code: Вывод максимума * 70e9293 code: Вывод деления * 53821c6 code: Вывод произведения * fa2916c git: Игнорирование файлов * e02b014 code: Вывод суммы и разности * 1d36560 code: Вывод суммы * 5f3f368 code: Ввод двух чисел * 1e4721b build: Добавлен файл проекта * b853652 code: заготовка программы User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $ git push Enumerating objects: 10, done. Counting objects: 100% (10/10), done. Delta compression using up to 8 threads Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 705 bytes | 705.00 KiB/s, done. Total 6 (delta 2), reused 0 (delta 0), pack-reused 0 remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:ChaginSA/cs-lab02.git 860c4d4..e802f4d main -> main User@WIN-AUMR7DE444E MINGW64 ~/Desktop/lab02/alice/project (main) $