mkdir alice mkdir bob cd alice mkdir project cd .. cd alice cd project git init git branch -m main git config user.name 'Alice (SmirnovFA)' git config user.email 'mr.fedush@gmail.com' Запустил CodeBlocks и создал проект в репозитарии Алисы: lab02 ├── alice │ └── project <--------- текущий рабочий каталог │ ├── .git <--------- создан командой "git init" │ ├── bin <--------- создан CodeBlocks при сборке │ ├── obj <--------- (то же самое) │ ├── main.cpp <-- код программы │ └── project.cbp <-- файл проекта └── bob git status On branch main No commits yet Untracked files: (use "git add ..." to include in what will be committed) main.cpp project.cbp nothing added to commit but untracked files present (use "git add" to track) git add main.cpp 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) project.cbp git commit -m 'code: заготовка программы' [main (root-commit) 08b65da] code: заготовка программы 1 file changed, 9 insertions(+) create mode 100644 main.cpp git add project.cbp git commit -m 'build добавлен файл проекта' [main f2b01d7] build добавлен файл проекта 1 file changed, 38 insertions(+) create mode 100644 project.cbp Изменили main в main.cpp 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 no changes added to commit (use "git add" and/or "git commit -a") git add -u git commit -m "code изменение main" [main 434bd16] code изменение main 1 file changed, 1 insertion(+) Создание файла .gitignore git status On branch main Untracked files: (use "git add ..." to include in what will be committed) .gitignore bin/ Записываем в него /bin git status On branch main Untracked files: (use "git add ..." to include in what will be committed) .gitignore Аналогично с /obj git add .gitignore git commit -m "git добавление gitignore" [main 6eec99e] git добавление gitignore 1 file changed, 2 insertions(+) create mode 100644 .gitignore git status On branch main nothing to commit, working tree clean git log --oneline --decorate --all --graph * 6eec99e (HEAD -> main) git добавление gitignore * 615152d code изменение main * 434bd16 code изменение main * eb2d331 code изменение main * f2b01d7 build добавлен файл проекта * 08b65da code: заготовка программы Нашел коммиты затрагивающие project.cbp и затрагивающие build git log -- project.cbp commit f2b01d7030bf74af5af0cdd8f0ec5aca74a25151 Author: Alice (IyevlevMD) Date: Wed Mar 27 10:03:57 2024 +0300 build добавлен файл проекта git log --grep "build" commit f2b01d7030bf74af5af0cdd8f0ec5aca74a25151 Author: Alice (IyevlevMD) Date: Wed Mar 27 10:03:57 2024 +0300 git remote add origin git@uit.mpei.ru:IyevlevMikD/cs-lab02.git git push -u origin main !!!! НЕ РАБОТАЕТТТТТТТ build добавлен файл проекта Просмотрел предпоследний коммит тремя способами: git show HEAD~1 commit 615152d3d06be5a6a6a2d8f967d8821c69706cbf Author: Alice (IyevlevMD) Date: Wed Mar 27 10:11:20 2024 +0300 code изменение main diff --git a/main.cpp b/main.cpp index cc9962c..fd75bba 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; + cout << "A + B = " << a + b << '\n' + << "A - B = " << a - b << '\n'; } git show 615152d3d06be5a6a6a2d8f967d8821c69706cbf git show main~1 Просмотрел изменения между самым первым коммитом и коммитом, добавляющим вывод разности git log --oneline --decorate --all --graph * 615152d (HEAD -> main) code изменение main * 434bd16 code изменение main * eb2d331 code изменение main * f2b01d7 build добавлен файл проекта * 08b65da code: заготовка программы git diff HEAD~1 diff --git a/main.cpp b/main.cpp index cc9962c..fd75bba 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; + cout << "A + B = " << a + b << '\n' + << "A - B = " << a - b << '\n'; } git diff HEAD~1 HEAD~4 diff --git a/main.cpp b/main.cpp index cc9962c..b4392ec 100644 --- a/main.cpp +++ b/main.cpp @@ -4,8 +4,6 @@ using namespace std; int main() { - cout << "Enter A and B: "; - int a, b; - cin >> a >> b; - cout << a << b; + cout << "Hello world!" << endl; + return 0; } diff --git a/project.cbp b/project.cbp deleted file mode 100644 index c4697a9..0000000 --- a/project.cbp +++ /dev/null @@ -1,38 +0,0 @@ - - Добавление умножения А и В в 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 no changes added to commit (use "git add" and/or "git commit -a") kotopathy@kotopathy-aspire:~/lab02/alice/project$ git add main.cpp kotopathy@kotopathy-aspire:~/lab02/alice/project$ git commit -m 'code: изменение main' [main 9696d4d] code: изменение main 1 file changed, 2 insertions(+), 1 deletion(-) git reset --hard HEAD~1 // you may type whatever you want git checkout HEAD -- main.cpp Скопировал открытый ключ и добавил в список открытых ключей своей учетной записи. Отправил проект на сервер через HTTP cd .. cd .. cd bob git clone http://uit.mpei.ru/git/IyevlevMikD/cs-lab02.git project git config user.name 'Bob (SmirnovFA)' git config user.email 'mr.fedush@gmail.com' // << "(BOB) A * B = " << a * b << '\n'; cd .. cd .. cd alice cd project git fetch git log --oneline --decorate --all --graph * d6218ae (HEAD -> main, origin/main, origin/HEAD) first commit * 9696d4d code: изменение main * d171837 git: добавление gitignore * 615152d code изменение main * 434bd16 code изменение main * eb2d331 code изменение main * f2b01d7 build добавлен файл проекта * 08b65da code: заготовка программы git pull --ff-only Already up to date. «От имени Алисы» добавил в программу печать деления, сделал коммит, отправил его на сервер и получил новую версию «на машине Боба» // << "(BOB) A * B = " << a * b << '\n'; cd .. cd .. cd bob cd project git config user.name 'Bob (IyevlevMikD)' git config user.email 'IyevlevMikD@mpei.ru' // << "(ALICE) A * B = " << a * b << '\n'; cd .. cd .. cd alice cd project git add main.cpp git commit -m "code: заготовка программы" [main e015649] code: заготовка программы 1 file changed, 1 insertion(+), 1 deletion(-) git push Username for 'http://uit.mpei.ru': IyevlevMikD Password for 'http://IyevlevMikD@uit.mpei.ru': cd .. cd .. cd bob cd project git fetch git log --oneline --decorate --all --graph git pull --ff-only cd .. cd .. cd alice cd project git config user.name 'Alice (IyevlevMikD)' git config user.email 'IyevlevMikD@mpei.ru' // cout << "A + B = " << a + b << '\n' // << "A - B = " << a - b << '\n' // << "A * B = " << a * b << '\n' // << "A / B = " << a / b << '\n'; git add main.cpp git commit -m "code: общий код" [main 1c7dc2f] code: общий код 1 file changed, 1 insertion(+), 1 deletion(-) cd .. cd .. cd bob cd project git add main.cpp git commit -m "code: изменен" git push cd .. cd .. cd alice cd project Код для Алисы переписан. git add main.cpp git commit -m "code: добавлена функция максимума" git push cd .. cd .. cd bob cd project git config user.name 'Bob (IyevlevMikD)' git config user.email 'IyevlevMikD@mpei.ru' Код для Боба переписан. git add main.cpp git commit -m "code: добавлена функция минимума" git fetch git rebase origin/main git rebase --continue // #include #include using namespace std; int main() { cout << "Enter A and B: "; float a, b; <<<<<<< HEAD float max; ======= float min; >>>>>>> d02294f (code: добавлен минимум) cin >> a >> b; cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n' << "A * B = " << a * b << '\n' << "A / B = " << a / b << '\n'; vector c {a+b, a-b, a*b, a/b}; <<<<<<< HEAD max = a+b; for (const int& i : c) { if (i > max) { max = i; } } cout << max; ======= min = a+b; for (const int& i : c) { if (i < min) { min = i; } } cout << min; >>>>>>> d02294f (code: добавлен минимум) } // git add main.cpp git rebase --continue [detached HEAD 4470938] code: добавлен минимум 1 file changed, 9 insertions(+), 1 deletion(-) Successfully rebased and updated refs/heads/main. git push git branch double git checkout double git add main.cpp git commit -m "code: заменено на double" git checkout 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 2), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), 362 bytes | 362.00 KiB/s, done. From http://uit.mpei.ru/git/IyevlevMikD/cs-lab02 83be200..4470938 main -> origin/main git merge double Updating 83be200..82b3e8b Fast-forward main.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) git fetch git push