Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Alice (MordashovSA) 5b544bf15a
proveril lab2
2 недель назад
.gitignore git 3 недель назад
README.md proveril lab2 2 недель назад
main.cpp Merge branch 'double' 3 недель назад
project.cbp build: | add project file 3 недель назад

README.md

Отчет по лабораторной работе № 2 «Система контроля версий Git»

Выполнил: Мордашов С. A
Группа: А-01-24
Проверил: Филатов С.A

Примечание: работа выполнялась на Windows.

  1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$
  1. Просмотрел файлы в рабочем каталоге можно командой ls — пусто:
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ ls

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$
  1. Создал каталоги Алисы и Боба, создал каталог project, изучил команду cd в процессе:
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir alice

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ mkdir bob

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd bob

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd ..

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd alice

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ mkdir project

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ ls
project/

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ cd project
  1. Инициализировал репозитарий:
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project
$ git init
Initialized empty Git repository in C:/Users/Mi/OneDrive/Рабочий стол/lab02/alice/project/.git/

У меня имя ветки по умолчанию не настроено. Git создал ветку под названием master, что видно в приглашении терминала. По описанию из методички должна была появиться подсказка hint: для изменения имени, но в моей версии Git-2.48.1-64-bit она не высветилась.

  1. Изменим имя ветки master, на main для удобства. Применим команду git branch -m main, а затем проверим, создался ли репозиторий, c помощью команды ls -A:
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master)
$ git branch -m main

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ ls -A
.git/

  1. Настроим репозитарий Алисы, чтобы коммиты были от ее имени:
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.name 'Alice (MordashovSA)'
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git config user.email 'MordashovSA@mpei.ru'
  1. Запустил CodeBlocks и создал проект в репозитарии Алисы:
Параметры были выбраны такие:

Project title: project Folder to create project in: C:\Users\Mi\OneDrive\Рабочий стол\lab02\alice Project filename: project.cbp Resulting filename: C:\Users\Mi\OneDrive\Рабочий стол\lab02\alice\project\project.cbp

Структура файлов выглядит таким образом:
lab02
├── alice
│  └── project  <--------- текущий рабочий каталог
│       ├── .git <--------- создан командой "git init"
│       ├── bin  <--------- создан CodeBlocks при сборке
│       ├── obj  <--------- (то же самое)
│       ├── main.cpp    <-- код программы
│       └── project.cbp <-- файл проекта
└── bob

  1. Вернувшись в Git Bash, просмотрим состояние рабочей копии:
 Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main - выведена информация о текущей ветке main

No commits yet - в базу данных не помещено ни одного коммита

Untracked files:
  (use "git add <file>..." 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) - чтобы включить неотслеживаемый файл в коммит, нужно использовать команду git add.
  1. Добавим файл main.cpp в индекс и закомили его:
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp

проверили внесение файла:

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   main.cpp

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        bin/
        obj/
        project.cbp

закоммили:

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'code: заготовка программы'
[main (root-commit) 1476d9a] code: заготовка программы
 1 file changed, 9 insertions(+)
 create mode 100644 main.cpp

аналогично с project.cbp:

Mi@DESKTOP-F1KO4G0 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

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   project.cbp

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        bin/
        obj/


Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'build: | add project file'
[main 0f25a14] build: | add project file
 1 file changed, 38 insertions(+)
 create mode 100644 project.cbp
  1. Различия между случаем, когда добавлялся новый файл, и когда изменился существующий
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   main.cpp

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        bin/
        obj/

no changes added to commit (use "git add" and/or "git commit -a")

  1. Закомим main.cpp снова 1 способом (ввод a, b):
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp
git commit -m "..."
[main f6890c8] ...
 1 file changed, 4 insertions(+), 1 deletion(-)

  1. Коммим ещё a+b
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   main.cpp

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        bin/
        obj/

no changes added to commit (use "git add" and/or "git commit -a")

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add -u `git add -u — это команда для подготовки к коммиту только изменённых и удалённых файлов, но не любых неотслеживаемых файлов.`
git commit -m "..."
[main 014403c] ...
 1 file changed, 1 insertion(+)

  1. Коммим ещё и a-b :
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   main.cpp

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        bin/
        obj/

no changes added to commit (use "git add" and/or "git commit -a")

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -a -m "..." - `— это команда в системе контроля версий Git, которая позволяет пропустить этап подготовки (с помощью git add) для изменённых файлов и зафиксировать их за один шаг.`
[main cc90111] ...
 1 file changed, 2 insertions(+), 2 deletions(-)

  1. Игнорирование файлов католога project c помощью .gitignore, и его занесение в git (создание коммита) Содержимое .gitignore: /bin /obj /project.layout /project.depend занесение:
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore

nothing added to commit but untracked files present (use "git add" to track)

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add .gitignore

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   .gitignore


Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m 'git'
[main c4878e1] git
 1 file changed, 4 insertions(+)
 create mode 100644 .gitignore

  1. Просмотрели журнал коммитов 3-мя способами: 1-й:
$ git log --stat
commit c4878e158000087a27662e5a55388a9cd244ad96 (HEAD -> main) (отображается хэш-номер, а также имя ветки проекта)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 20:24:33 2025 +0300

    git

 .gitignore | 4 ++++
 1 file changed, 4 insertions(+)   (1 файл изменён 4 строки добавилось)

commit cc90111dc34b722e8e951c1cf0b683e126dfa291
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 20:03:59 2025 +0300

    ...

 main.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 014403c534015ce10bf1b4b69d463c01f8f9aa67
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 20:00:49 2025 +0300

    ...

 main.cpp | 1 +
 1 file changed, 1 insertion(+)

commit f6890c870a1ff096e73560a40678989657bd648a
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 19:52:51 2025 +0300

    ...

 main.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 0f25a148357a7e6fdf687323837f6ece7069bc1d
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 19:40:23 2025 +0300

    build: | add project file

 project.cbp | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

commit 1476d9a862ab4e6fb4e1fd013aef853737b4f318
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 19:32:23 2025 +0300

    code: заготовка программы

 main.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

2-ым:

$ git log --oneline --decorate
c4878e1 (HEAD -> main) git
cc90111 ...
014403c ...
f6890c8 ...
0f25a14 build: | add project file
1476d9a code: заготовка программы

3-м:

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* c4878e1 (HEAD -> main) git
* cc90111 ...
* 014403c ...
* f6890c8 ...
* 0f25a14 build: | add project file
* 1476d9a code: заготовка программы

Несколько полезных функций: 1)

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log -- main.cpp
commit cc90111dc34b722e8e951c1cf0b683e126dfa291
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 20:03:59 2025 +0300

    ...

commit 014403c534015ce10bf1b4b69d463c01f8f9aa67
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 20:00:49 2025 +0300

    ...

commit f6890c870a1ff096e73560a40678989657bd648a
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 19:52:51 2025 +0300

    ...

commit 1476d9a862ab4e6fb4e1fd013aef853737b4f318
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 19:32:23 2025 +0300

    code: заготовка программы

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --grep "code:"
commit 1476d9a862ab4e6fb4e1fd013aef853737b4f318
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 19:32:23 2025 +0300

    code: заготовка программы

коммиты по теме build, затем коммиты, затрагивающие project.cbp:

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --grep "build:"
commit 0f25a148357a7e6fdf687323837f6ece7069bc1d
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 19:40:23 2025 +0300

    build: | add project file

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log -- project.cbp
commit 0f25a148357a7e6fdf687323837f6ece7069bc1d
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 19:40:23 2025 +0300

    build: | add project file
  1. просмотр в gitbash самих коммитов 1 C помощью HEAD , а потом с помощью названия ветки просмотрим последний коммит
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show HEAD
commit c4878e158000087a27662e5a55388a9cd244ad96 (HEAD -> main)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 20:24:33 2025 +0300

    git

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..df212eb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin
+/obj
+/project.layout
+/project.depend

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show main
commit c4878e158000087a27662e5a55388a9cd244ad96 (HEAD -> main)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 20:24:33 2025 +0300

    git

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..df212eb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin
+/obj
+/project.layout
+/project.depend

предпоследний коммит:

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show cc90111
commit cc90111dc34b722e8e951c1cf0b683e126dfa291
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 20:03:59 2025 +0300

    ...

diff --git a/main.cpp b/main.cpp
index dec99f2..5371b30 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,7 +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';
     return 0;
 }

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show HEAD~1
commit cc90111dc34b722e8e951c1cf0b683e126dfa291
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 20:03:59 2025 +0300

    ...

diff --git a/main.cpp b/main.cpp
index dec99f2..5371b30 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,7 +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';
     return 0;
 }
  1. Некторые команды git diff:
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff
diff --git a/main.cpp b/main.cpp
index 5371b30..15a93c2 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,6 +8,8 @@ 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';
+
     return 0;
 }

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..df212eb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin
+/obj
+/project.layout
+/project.depend
diff --git a/main.cpp b/main.cpp
index dec99f2..15a93c2 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,7 +7,9 @@ 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'
+         << "A * B = " << a * b << '\n';

     return 0;
 }

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~2 HEAD
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..df212eb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin
+/obj
+/project.layout
+/project.depend
diff --git a/main.cpp b/main.cpp
index dec99f2..5371b30 100644
--- a/main.cpp
+++ b/main.cpp
@@ -7,7 +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';
     return 0;
 }
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git diff HEAD~5 HEAD~1
diff --git a/main.cpp b/main.cpp
index b4392ec..5371b30 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,6 +4,10 @@ using namespace std;

 int main()
 {
-    cout << "Hello world!" << endl;
+    cout << "Enter A and B: ";
+    int a, b;
+    cin >> a >> b;
+    cout << "A + B = " << a + b << '\n'
+         << "A - B = " << a - b << '\n';
     return 0;
 }
diff --git a/project.cbp b/project.cbp
new file mode 100644
index 0000000..c4697a9
--- /dev/null
+++ b/project.cbp
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+       <FileVersion major="1" minor="6" />
+       <Project>
+               <Option title="project" />
+               <Option pch_mode="2" />
+               <Option compiler="gcc" />
+               <Build>
+                       <Target title="Debug">
+                               <Option output="bin/Debug/project" prefix_auto="1" extension_auto="1" />
+                               <Option object_output="obj/Debug/" />
+                               <Option type="1" />
+                               <Option compiler="gcc" />
+                               <Compiler>
+                                       <Add option="-g" />
+                               </Compiler>
+                       </Target>
+                       <Target title="Release">
+                               <Option output="bin/Release/project" prefix_auto="1" extension_auto="1" />
+                               <Option object_output="obj/Release/" />
+                               <Option type="1" />
+                               <Option compiler="gcc" />
+                               <Compiler>
+                                       <Add option="-O2" />
+                               </Compiler>
+                               <Linker>
+                                       <Add option="-s" />
+                               </Linker>
+                       </Target>
+               </Build>
+               <Compiler>
+                       <Add option="-Wall" />
+                       <Add option="-fexceptions" />
+               </Compiler>
+               <Unit filename="main.cpp" />
+               <Extensions />
+       </Project>
+</CodeBlocks_project_file>
  1. Откат изменений 2-мя способами:
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp
git commit -m "product"
[main 9ad4bf4] product
 1 file changed, 3 insertions(+), 1 deletion(-)

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git show HEAD
commit 9ad4bf44cfcd517f8c51a1701db2cc6bf9bf861e (HEAD -> main)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Sun Apr 6 22:38:48 2025 +0300

    product

diff --git a/main.cpp b/main.cpp
index 5371b30..15a93c2 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,6 +8,8 @@ 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';
+
     return 0;
 }

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git reset --hard HEAD~1
HEAD is now at c4878e1 git

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout HEAD -- main.cpp
  1. Выгрузка на сервер

  1. Восстание боба
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ git clone git@uit.mpei.ru:MordashovSA/cs-lab02.git project
Cloning into 'project'...
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
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.

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd project

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.name 'Bob (MordashovSA)'

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git config user.email 'MordashovSA@mpei.ru'

  1. Сначала вносит изменения в проект боб , а потом алиса
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git add main.cpp


Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -m "product bob"
[main 3937477] product bob
 1 file changed, 2 insertions(+), 1 deletion(-)


Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 366 bytes | 183.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:MordashovSA/cs-lab02.git
   c4878e1..3937477  main -> main

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd alice

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice
$ cd project

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git fetch
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
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), 346 bytes | 10.00 KiB/s, done.
From uit.mpei.ru:MordashovSA/cs-lab02
   c4878e1..3937477  main       -> origin/main

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
* 3937477 (origin/main, origin/HEAD) product bob
* c4878e1 (HEAD -> main) git
* cc90111 ...
* 014403c ...
* f6890c8 ...
* 0f25a14 build: | add project file
* 1476d9a code: заготовка программы

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git pull --ff-only
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
Updating c4878e1..3937477
Fast-forward
 main.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "delenie bob"
[main a484402] delenie bob
 1 file changed, 2 insertions(+), 1 deletion(-)

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 386 bytes | 193.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:MordashovSA/cs-lab02.git
   3937477..a484402  main -> main


Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd bob

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd project

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git fetch
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
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), 366 bytes | 8.00 KiB/s, done.
From uit.mpei.ru:MordashovSA/cs-lab02
   3937477..a484402  main       -> origin/main

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* a484402 (origin/main, origin/HEAD) delenie bob
* 3937477 (HEAD -> main) product bob
* c4878e1 git
* cc90111 ...
* 014403c ...
* f6890c8 ...
* 0f25a14 build: | add project file
* 1476d9a code: заготовка программы

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git pull --ff-only
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
Updating 3937477..a484402
Fast-forward
 main.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

  1. Разрешение конфликтов правок при совместной работе:

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git add main.cpp

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git commit -m "max alice"
[main ad602cf] max alice
 1 file changed, 6 insertions(+)

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 409 bytes | 409.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:MordashovSA/cs-lab02.git
   a484402..ad602cf  main -> main

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02
$ cd bob

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob
$ cd project

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git add main.cpp

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git commit -m "min bob"
[main 5c71966] min bob
 1 file changed, 6 insertions(+)

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
To uit.mpei.ru:MordashovSA/cs-lab02.git
 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'uit.mpei.ru:MordashovSA/cs-lab02.git'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git fetch
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
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), 389 bytes | 38.00 KiB/s, done.
From uit.mpei.ru:MordashovSA/cs-lab02
   a484402..ad602cf  main       -> origin/main

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git log --oneline --decorate --all --graph
* 5c71966 (HEAD -> main) min bob
| * ad602cf (origin/main, origin/HEAD) max alice
|/
* a484402 delenie bob
* 3937477 product bob
* c4878e1 git
* cc90111 ...
* 014403c ...
* f6890c8 ...
* 0f25a14 build: | add project file
* 1476d9a code: заготовка программы

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git rebase origin/main
Auto-merging main.cpp
CONFLICT (content): Merge conflict in main.cpp
error: could not apply 09cc3de... min bob
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", 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".
hint: Disable this message with "git config set advice.mergeConflict false"
Could not apply 09cc3de... min bob

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main|REBASE 1/1)
$ git pull --ff-only
error: Pulling is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.


Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git pull --ff-only
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
hint: Diverging branches can't be fast-forwarded, you need to either:
hint:
hint:   git merge --no-ff
hint:
hint: or:























E325: ATTENTION
Found a swap file by the name "~/OneDrive/Рабочий стол/lab02/bob/project/.git/.COMMIT_EDITMSG.swp"
          owned by: Mi   dated: Mon Apr 07 04:23:47 2025







min bob























[detached HEAD 0db9b80] min bob
 1 file changed, 6 insertions(+)
Successfully rebased and updated refs/heads/main.


Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 382 bytes | 382.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:MordashovSA/cs-lab02.git
   ad602cf..0db9b80  main -> main
  1. Слияние веток:
Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout double
error: pathspec 'double' did not match any file(s) known to git

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git branch double

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout double
Switched to branch 'double'

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git commit -a -m "double alice"
[double a1421a6] double alice
 1 file changed, 1 insertion(+), 1 deletion(-)

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git show HEAD
commit a1421a61b4c8461165f0df96709de6025aa2a083 (HEAD -> double)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Thu Apr 10 20:34:10 2025 +0300

    double alice

diff --git a/main.cpp b/main.cpp
index 88e0a14..13d54db 100644
--- a/main.cpp
+++ b/main.cpp
@@ -5,7 +5,7 @@ using namespace std;
 int main()
 {
     cout << "Enter A and B: ";
-    int a, b;
+    double a, b;
     cin >> a >> b;
     cout << "A + B = " << a + b << '\n'
          << "A - B = " << a - b << '\n'

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (double)
$ git checkout MAIN
Switched to branch 'MAIN'

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (MAIN)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git checkout p
error: pathspec 'p' did not match any file(s) known to git

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git fetch
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
From uit.mpei.ru:MordashovSA/cs-lab02
   ad602cf..0db9b80  main       -> origin/main

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git pull --ff-only
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':






















Auto-merging main.cpp
Merge made by the 'ort' strategy.
 main.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log --oneline --decorate --all --graph
*   5a70cef (HEAD -> main) Merge branch 'double'
|\
| * a1421a6 (double) double alice
* | 0db9b80 (origin/main, origin/HEAD) min bob
|/
* ad602cf max alice
* a484402 delenie bob
* 3937477 product bob
* c4878e1 git
* cc90111 ...
* 014403c ...
* f6890c8 ...
* 0f25a14 build: | add project file
* 1476d9a code: заготовка программы

Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git log
commit 5a70ceff0acfe5152459a231d1ea074cdf4356b6 (HEAD -> main)
Merge: 0db9b80 a1421a6
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Thu Apr 10 20:41:38 2025 +0300

    Merge branch 'double'

commit a1421a61b4c8461165f0df96709de6025aa2a083 (double)
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Thu Apr 10 20:34:10 2025 +0300

    double alice

commit 0db9b808ba1f04a89d1c199a54073dd8bc670143 (origin/main, origin/HEAD)
Author: Bob (MordashovSA) <MordashovSA@mpei.ru>
Date:   Mon Apr 7 16:47:23 2025 +0300

    min bob

commit ad602cf9a45174cc22227cd21c8e7bd9972a9cb6
Author: Alice (MordashovSA) <MordashovSA@mpei.ru>
Date:   Mon Apr 7 03:23:28 2025 +0300


Mi@DESKTOP-F1KO4G0 MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (main)
$ git push
Enter passphrase for key '/c/Users/Mi/.ssh/id_ed25519':
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 12 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 691 bytes | 172.00 KiB/s, done.
Total 6 (delta 2), reused 1 (delta 0), pack-reused 0 (from 0)
remote: . Processing 1 references
remote: Processed 1 references in total
To uit.mpei.ru:MordashovSA/cs-lab02.git
   0db9b80..5a70cef  main -> main