Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
NefedovMikA 21a42582f9
Загрузил(а) файлы в ''
3 недель назад
.gitignore build: git 3 недель назад
README.md Загрузил(а) файлы в '' 3 недель назад
main.cpp code: replacing int with double 3 недель назад
project.cbp build: add project file 3 недель назад

README.md

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

Выполнил: Нефедов М.А. Группа: А-01-24 Проверил: Козлюк Д.А.

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


Вход в терминал и создание структуры каталогов

  1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02 $

  1. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто:

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02 $ ls

  1. Создал каталоги Алисы и Боба, создал каталог "project", изучил команду "cd" в процессе:

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02 $ mkdir alice

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02 $ mkdir bob

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02 $ cd alice

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice $ mkdir project

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice $ cd project

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project $ cd ..

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice $ cd project


Инициализация репозитария и настройка Git

  1. Инициализировал репозитарий и поменял имя ветки:

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project $ git init Initialized empty Git repository in C:/Users/I/Desktop/lab02/alice/project/.git/

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice (master) $ git branch -m main

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ ls -A .git/

  1. Настроим репозитарий Алисы, чтобы коммиты были от ее имени:

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git config user.name 'Alice (NefedovMA)'

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git config user.email 'NefedovMikA@mpei.ru'


Занесение файлов под контроль версий

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git status On branch master //Отображает статус ветки 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)

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git add main.cpp

  1. Еще раз посмотрел состояние рабочей копии

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ 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

  1. Сделал первый коммит

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git commit -m 'code: заготовка программы' [master (root-commit) ea154c7] code: заготовка программы 1 file changed, 9 insertions(+) create mode 100644 main.cpp


Составление сообщений к коммитам

  1. Добавил файл project.cbp в индекс и сделал коммит с ним

I@DESKTOP-EKCEBSK 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

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git commit -m 'build: add project file' [main d864b88] build: add project file 1 file changed, 40 insertions(+) create mode 100644 project.cbp

I@DESKTOP-EKCEBSK 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")

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git add main.cpp

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git commit -m 'code: add sum' [main 46e6a8d] code: add sum 1 file changed, 3 insertions(+), 2 deletions(-)

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git add -u

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git commit -m 'code: add difference' [main a9d8a17] code: add difference 1 file changed, 2 insertions(+), 1 deletion(-)


Игнорирование файлов

I@DESKTOP-EKCEBSK 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)

I@DESKTOP-EKCEBSK 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)

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git add .gitignore

  1. Создал коммит с .gitignore, тема — git.

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git commit -m 'build: git' [main f507a7a] build: git 1 file changed, 2 insertions(+) create mode 100644 .gitignore


Просмотр истории

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git log commit f507a7a536 (HEAD -> main) Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 22:04:34 2025 +0300

build: git

commit a9d8a175ab Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 21:54:00 2025 +0300

code: add difference

commit 46e6a8d52c Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 21:52:52 2025 +0300

code: add sum

commit d864b88186 Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 21:44:57 2025 +0300

build: add project file

commit bd3a459ab7 Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 21:43:20 2025 +0300

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

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git log --stat commit f507a7a536 (HEAD -> main) Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 22:04:34 2025 +0300

build: git

.gitignore | 2 ++ 1 file changed, 2 insertions(+)

commit a9d8a175ab Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 21:54:00 2025 +0300

code: add difference

main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)

commit 46e6a8d52c Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 21:52:52 2025 +0300

code: add sum

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

commit d864b88186 Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 21:44:57 2025 +0300

build: add project file

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

commit bd3a459ab7 Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 21:43:20 2025 +0300

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

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

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate edcde68 (HEAD -> main) build: git b5a62d1 code: add difference a475681 code: add sum 20710a4 build: add project file ea154c7 code: заготовка программы

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) git log --oneline --decorate f507a7a (HEAD -> main) build: git a9d8a17 code: add difference 46e6a8d code: add sum d864b88 build: add project file bd3a459 code: заготовка программы

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --grep "build:" commit f507a7a536 (HEAD -> main) Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 22:04:34 2025 +0300

build: git

commit d864b88186 Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 21:44:57 2025 +0300

build: add project file
  1. Нашел коммиты, затрагивающие project.cbp:

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git log -- project.cbp commit d864b88186 Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 21:44:57 2025 +0300

build: add project file

Просмотр коммитов

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

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git show HEAD~1 commit a9d8a175ab Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 21:54:00 2025 +0300

code: add difference

diff --git a/main.cpp b/main.cpp index 3609423..5f14a52 100644 --- a/main.cpp +++ b/main.cpp @@ -5,6 +5,7 @@ using namespace std; int main() { cout << "Enter A and B: ";

  • nt a, b;
  • int a, b; cin >> a >> b;
  • cout << "A + B = " << a + b ; } << "A - B = " << a - b << '\n'; }

Просмотр изменений

  1. Просмотрел изменения в рабочей копии:

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff diff --git a/main.cpp b/main.cpp index 5f14a52..f372c78 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 ;
  • cout << "A + B = " << a + b << '\n'
  •     << "A - B = " << a - b << '\n'
    
  •     << "A * B = " << a * b << '\n';
    

}

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff HEAD~2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c7473d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/bin +/obj diff --git a/main.cpp b/main.cpp index 3609423..f372c78 100644 --- a/main.cpp +++ b/main.cpp @@ -5,6 +5,9 @@ using namespace std; int main() { cout << "Enter A and B: ";

  • nt a, b;
  • int a, b; cin >> a >> b;
  • cout << "A + B = " << a + b << '\n'
  •     << "A - B = " << a - b << '\n'
    
  •     << "A * B = " << a * b << '\n';
    

}

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff HEAD~2 HEAD diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c7473d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/bin +/obj diff --git a/main.cpp b/main.cpp index 3609423..5f14a52 100644 --- a/main.cpp +++ b/main.cpp @@ -5,6 +5,7 @@ using namespace std; int main() { cout << "Enter A and B: ";

  • nt a, b;
  • int a, b; cin >> a >> b;
  • cout << "A + B = " << a + b ; }
  1. Просмотрел изменения между самым первым коммитом и коммитом, добавляющим вывод разности:

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git diff bd3a459 a9d8a17 diff --git a/main.cpp b/main.cpp diff --git a/main.cpp b/main.cpp index b4392ec..5f14a52 100644 --- a/main.cpp +++ b/main.cpp @@ -4,6 +4,8 @@ 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 ; } diff --git a/project.cbp b/project.cbp new file mode 100644 index 0000000..99bb702 --- /dev/null +++ b/project.cbp @@ -0,0 +1,40 @@ + +<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>
    
  •                   <lib_finder disable_auto="1" />
    
  •           </Extensions>
    
  •   </Project>
    

/usr/bin/bash: -c: line 1: syntax error near unexpected token (' /usr/bin/bash: -c: line 1: lessecho -p0x22 -d0x22 -e\ -n0x3b -n0x20 -n0x2a -n0x3f -n0x9 -n0xa -n0x27 - n0x22 -n0x28 -n0x29 -n0x3c -n0x3e -n0x5b -n0x5d -n0x7c -n0x26 -n0x5e -n0x60 -n0x23 -n0x5c -n0x24 -n0x25 -n0x3d -n0x7e -n0x7b -n0x7d -n0x2c -- (main)' +</CodeBlocks_project_file>

  •                                   <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" />
    
  •           <Unit filename="main.cpp" />
    
  •           <Extensions>
    
  •                   <lib_finder disable_auto="1" />
    
  •           </Extensions>
    
  •   </Project>
    

+</CodeBlocks_project_file> (END)

Произошла какая-то ошибка , но не повлекла изменений: I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + <Option output="bin/Release/project" prefix_auto="1" extension_auto="1" bash: Option: No such file or directory

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ /> bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + <lib_finder disable_auto="1" /> bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ + bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ +</CodeBlocks_project_file> bash: syntax error near unexpected token `newline'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ (END) bash: END: command not found


Откат изменений

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git add -u

  1. Закоммител изменения в рабочей копии (вывод произведения):

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'code: add product' [main 3ce46ce] code: add product 1 file changed, 4 insertions(+), 2 deletions(-)

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git reset --hard HEAD~1 HEAD is now at f507a7a build: git

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git checkout HEAD -- main.cpp


Обмен кодом через удаленное хранилище

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ ssh-keygen Generating public/private ed25519 key pair. Enter file in which to save the key (/c/Users/I/.ssh/id_ed25519): Created directory '/c/Users/I/.ssh'. Enter passphrase for "/c/Users/I/.ssh/id_ed25519" (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/I/.ssh/id_ed25519 Your public key has been saved in /c/Users/I/.ssh/id_ed25519.pub The key fingerprint is: SHA256:3IhDpTLF5vYqh/iNcKH2ac8tto/5IDRUPxP/qZey8U8 I@DESKTOP-EKCEBSK The key's randomart image is: +--[ED25519 256]--+ | .o o | | oo+ o | | +oo + . | | . +oo = . . | | +.o.S . o | | o o .. . . | | +.o... + o E | | ..++*== * . | | o==B=+ . ... | +----[SHA256]-----+

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) eval(ssh-agent -s) Agent pid 2267

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ ssh-add Enter passphrase for /c/Users/I/.ssh/id_ed25519: Bad passphrase, try again for /c/Users/I/.ssh/id_ed25519: Bad passphrase, try again for /c/Users/I/.ssh/id_ed25519: Identity added: /c/Users/I/.ssh/id_ed25519 (I@DESKTOP-EKCEBSK)

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ cat ~/.ssh/id_ed25519.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKNWxzD9r+9NznDsXzzV2RjjWxwk3tk2EWX6XJTRYuIs I@DESKTOP-EKCEBSK


Отправка проекта на сервер

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ touch README.md

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git init Reinitialized existing Git repository in C:/Users/I/Desktop/lab02/alice/project/.git/

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git checkout -b main fatal: a branch named 'main' already exists

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git add README.md

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m error: switch `m' requires a value

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m "first commit" [main 2247569] first commit 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 README.md

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git remote add origin git@uit.mpei.ru:NefedovMikA/cs-lab02.git

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git push -u origin main The authenticity of host 'uit.mpei.ru (193.233.68.149)' can't be established. ED25519 key fingerprint is SHA256:Q5w0UKEzQKA3J6NyMtjwCLvtAykoxdugIXjx6NwU4NA. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'uit.mpei.ru' (ED25519) to the list of known hosts. Enumerating objects: 18, done. Counting objects: 100% (18/18), done. Delta compression using up to 12 threads Compressing objects: 100% (15/15), done. Writing objects: 100% (18/18), 2.07 KiB | 708.00 KiB/s, done. Total 18 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0) remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:NefedovMikA/cs-lab02.git

  • [new branch] main -> main branch 'main' set up to track 'origin/main'.

Получение проекта с сервера

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob $ git clone git@uit.mpei.ru:NefedovMikA/cs-lab02.git project Cloning into 'project'... Enter passphrase for key '/c/Users/I/.ssh/id_ed25519': remote: Enumerating objects: 18, done. remote: Counting objects: 100% (18/18), done. remote: Compressing objects: 100% (15/15), 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.

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob $ cd project

  1. «На машине Боба» настроил Git (git config):

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git config user.name 'Bob (NefedovMA)'

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git config user.email 'NefedovMikA@mpei.ru'


Совместная работа над проектом без конфликтов и правок

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git add -u

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git commit -m 'code: add product' [main dbbf4bd] code: add product 1 file changed, 3 insertions(+), 1 deletion(-)

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git show HEAD commit dbbf4bd2bd (HEAD -> main) Author: Bob (NefedovMA) NefedovMikA@mpei.ru Date: Sun Apr 6 23:56:47 2025 +0300

code: add product

diff --git a/main.cpp b/main.cpp index 5f14a52..f372c78 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 ;
  • cout << "A + B = " << a + b << '\n'
  •     << "A - B = " << a - b << '\n'
    
  •     << "A * B = " << a * b << '\n';
    

}

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git push Enter passphrase for key '/c/Users/I/.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), 332 bytes | 332.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0) remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:NefedovMikA/cs-lab02.git 2247569..dbbf4bd main -> main

  1. Загрузка изменений на машине Алисы:

I@DESKTOP-EKCEBSK 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 2), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), 312 bytes | 62.00 KiB/s, done. From uit.mpei.ru:NefedovMikA/cs-lab02 2247569..dbbf4bd main -> origin/main

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git pull --ff-only Updating 2247569..dbbf4bd Fast-forward main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph

  • afa37f4 (refs/stash) On main: project |
    | * 4263737 index on main: 2247569 first commit |/ | * dbbf4bd (HEAD -> main, origin/main, origin/HEAD) code: add product |/
  • 2247569 first commit
  • f507a7a build: git
  • a9d8a17 code: add difference
  • 46e6a8d code: add sum
  • d864b88 build: add project file
  • bd3a459 code: заготовка программы
  1. Добавление деления от имени Алисы:

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git add -u

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'code: add division' On branch main Your branch is up to date with 'origin/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) main.exe main.o project.depend project.layout

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

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git add -u

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'code: add division' [main 53f2083] code: add division 1 file changed, 2 insertions(+), 1 deletion(-)

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git show HEAD commit 53f2083c8f (HEAD -> main) Author: Alice (NefedovMA) NefedovMikA@mpei.ru Date: Mon Apr 7 00:16:37 2025 +0300

code: add division

diff --git a/main.cpp b/main.cpp index f372c78..38bc977 100644 --- a/main.cpp +++ b/main.cpp @@ -9,5 +9,6 @@ int main() 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';
    

}

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git push 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), 325 bytes | 325.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0) remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:NefedovMikA/cs-lab02.git dbbf4bd..53f2083 main -> main

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git fetch Enter passphrase for key '/c/Users/I/.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 2), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), 305 bytes | 50.00 KiB/s, done. From uit.mpei.ru:NefedovMikA/cs-lab02 dbbf4bd..53f2083 main -> origin/main

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --oneline --decorate --all --graph

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git pull --ff-only Enter passphrase for key '/c/Users/I/.ssh/id_ed25519': Updating dbbf4bd..53f2083 Fast-forward main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git log --oneline --decorate --all --graph


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

  1. «На машине Алисы» дополнил программу печатью максимума, сделайте коммит и отправьте его на сервер:

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git add -u

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git commit -m 'code: add max' [main 5df5ce3] code: add max 1 file changed, 2 insertions(+), 1 deletion(-)

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/alice/project (main) $ git push 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), 337 bytes | 337.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0) remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:NefedovMikA/cs-lab02.git 53f2083..5df5ce3 main -> main

  1. «От лица Боба» загрузил коммиты из удаленного хранилища и отобразите историю всех веток:

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git add -u

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git commit -m 'code: add min' [main c504cc7] code: add min 1 file changed, 2 insertions(+), 1 deletion(-)

I@DESKTOP-EKCEBSK MINGW64 ~/Desktop/lab02/bob/project (main) $ git push Enter passphrase for key '/c/Users/I/.ssh/id_ed25519': Enter passphrase for key '/c/Users/I/.ssh/id_ed25519': To uit.mpei.ru:NefedovMikA/cs-lab02.git ! [rejected] main -> main (fetch first) error: failed to push some refs to 'uit.mpei.ru:NefedovMikA/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

/* Выполнил отображение всех веток и сделал "git rebase --continue", после этого появилось "окно" /* с большим количеством текста, которое не закрывалось, после закрытия терминала и повторного выполнения /* команды выдало сообщение :Successfully rebased and updated refs/heads/main"

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/bob/project (main|REBASE 1/1) $ git add main.cpp

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/bob/project (main|REBASE 1/1) $ git rebase --continue Successfully rebased and updated refs/heads/main.

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/bob/project (main) $ git log --oneline --decorate --all --graph

  • c504cc7 (HEAD -> main) code: add min | * 5df5ce3 (origin/main, origin/HEAD) code: add max |/
  • 53f2083 code: add division
  • dbbf4bd code: add product
  • 2247569 first commit
  • f507a7a build: git
  • a9d8a17 code: add difference
  • 46e6a8d code: add sum
  • d864b88 build: add project file
  • bd3a459 code: заготовка программы

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/bob/project (main) $ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 20 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 335 bytes | 335.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0) remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:NefedovMikA/cs-lab02.git 8cb6ab8..e11d953 main -> main


Использование веток

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git branch double

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git checkout double Switched to branch 'double'

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (double) $ git add -u

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (double) $ git commit -m 'code: replacing int with double' [double 4f1d9e8] code: replacing int with double 1 file changed, 1 insertion(+), 1 deletion(-)

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (double) $ git checkout main Switched to branch 'main' Your branch is up to date with 'origin/main'.

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main|MERGING) $ git merge double fatal: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you merge.

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main|MERGING) $ git merge double fatal: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you merge.

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main|MERGING) $ git commit -m 'code: replacing int with double' [main 671a72a] code: replacing int with double

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git push Enumerating objects: 10, done. Counting objects: 100% (10/10), done. Delta compression using up to 20 threads Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 591 bytes | 591.00 KiB/s, done. Total 6 (delta 4), reused 0 (delta 0), pack-reused 0 (from 0) remote: . Processing 1 references remote: Processed 1 references in total To uit.mpei.ru:NefedovMikA/cs-lab02.git e11d953..0aded28 main -> main

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git merge double Already up to date.

I@DESKTOP-EKCEBSK MINGW64~/Desktop/lab02/alice/project (main) $ git log --oneline --decorate --all --graph

  • eb639d7 (HEAD -> main) code: replacing int with double |
    | * 9f54099 (origin/main, origin/HEAD) code: add min
  • | 81ff2ca code: replacing int with double
  • | 671a72a (double) code: replacing int with double |/
  • 5df5ce3 (doble) code: add max
  • 53f2083 code: add division
  • dbbf4bd code: add product | * afa37f4 (refs/stash) On main: project |/| | * 4263737 index on main: 2247569 first commit |/
  • 2247569 first commit
  • f507a7a build: git
  • a9d8a17 code: add difference
  • 46e6a8d code: add sum
  • d864b88 build: add project file
  • bd3a459 code: заготовка программы