Родитель
							
								
									af1896dfc1
								
							
						
					
					
						Сommit
						534031bf71
					
				| @ -0,0 +1,807 @@ | ||||
| Отчет по лабораторной работе № 2 "Система контроля версий Git" | ||||
| 
 | ||||
| Выполнил: Жалнин В.Ю. | ||||
| Группа:   А-01-22 | ||||
| Проверил:  | ||||
| 
 | ||||
| Примечание: работа выполнялась на Windows. | ||||
| 
 | ||||
| 1) Создал на рабочем столе каталог lab02.02 и запустил в нем Git Bash, приглашение: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 | ||||
| $ | ||||
| 
 | ||||
| 2) Просмотрел файлы в рабочем каталоге командой "ls" - пусто: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 | ||||
| $ ls | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 | ||||
| $ | ||||
| 
 | ||||
| 3) Создал каталоги Алисы и Боба, создал каталог "project", | ||||
| изучил команду "cd" в процессе: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 | ||||
| $ mkdir alice | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 | ||||
| $ mkdir bob | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02 | ||||
| $ cd alice | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice | ||||
| $ mkdir project | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice | ||||
| $ cd project | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project | ||||
| $ cd .. | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice | ||||
| $ cd project | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project | ||||
| $ | ||||
| 
 | ||||
| 4) Инициализировал репозитарий, изменил имя ветки и через команду ls -A увидел его наличие: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project | ||||
| $ git init | ||||
| Initialized empty Git repository in C:/Users/ПК/Desktop/lab02/alice/project/.git/ | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (master) | ||||
| $ git branch -m main | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $  | ||||
| 
 | ||||
| 5) Настроил репозитарий, чтобы коммиты были от моего имени: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git config user.name 'Alice (ZhalninVY)' | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git config user.email 'ZhalninVY@mpei.ru' | ||||
| 
 | ||||
| 
 | ||||
| 6) Запустил CodeBlocks и создал проект в репозитарии Алисы: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git status | ||||
| 
 | ||||
| On branch main  | ||||
| 
 | ||||
| No commits yet (нет файлов для коммита) | ||||
| 
 | ||||
| Untracked files: (В рабочей копии замечен файл, но Git его не отслеживает.) | ||||
|   (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) | ||||
| 
 | ||||
| 7) Заношу файл main.cpp под Git | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git add main.cpp | ||||
| 
 | ||||
| 8) Закомитил файл main.cpp и короткое сообщение (в одинарных или двойных ковычках):  | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git commit -m 'code: заготовка программы' | ||||
| [main (root-commit) 70a6613] code: заготовка программы | ||||
|  1 file changed, 9 insertions(+) | ||||
|  create mode 100644 main.cpp | ||||
|              | ||||
| 
 | ||||
| 9) Добавил файл project.cbp в индекс, закомитил его с комментарием:  | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R 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 | ||||
| 
 | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git commit -m 'build: добавлен файл проекта' | ||||
| [main e80d54b] build: добавлен файл проекта | ||||
|  1 file changed, 40 insertions(+) | ||||
|  create mode 100644 project.cbp | ||||
| 
 | ||||
| 
 | ||||
| 10) Использование команды $ git status после изменения файла main.cpp:  | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/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") | ||||
| 
 | ||||
| При сравнении случаев, когда добавлялся новый файл, и когда изменился существующий, можно заметить, что  | ||||
| в случае, когда файл был изменен после добавления в индекс, изменения необходимо закомитить отдельно. | ||||
| 
 | ||||
| 11) 1 способ закомитить изменения: | ||||
| 
 | ||||
| Выбрать файлы, изменения которых должны войти в коммит, затем сделать коммит: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git add main.cpp | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git commit -m 'code: добавлен ввод двух чисел' | ||||
| [main 1036577] code: добавлен ввод двух чисел | ||||
|  1 file changed, 4 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| 
 | ||||
| 12) 2 способ закомитить изменения: | ||||
| 
 | ||||
| Добавить в индекс все изменения, затем сделать коммит: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git add -u | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git commit -m 'code: добавлен вывод суммы' | ||||
| [main cdfe6e6] code: добавлен вывод суммы | ||||
|  1 file changed, 1 insertion(+) | ||||
| 
 | ||||
|   | ||||
| 13) 3 способ закомитить изенения: | ||||
| 
 | ||||
| Добавить все изменения в индекс и сделать коммит в один шаг: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git commit -a -m 'code: добавлен вывод разности' | ||||
| [main 00a04ef] code: добавлен вывод разности | ||||
|  1 file changed, 2 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| 
 | ||||
| Удобен когда коммит меняет уже существующий файл. | ||||
| 
 | ||||
| 14) Игнорирование файлов: | ||||
| 
 | ||||
| Создаем файл в codeblocks с подпись /bin, /obj и /project.layout в разных строках | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/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) | ||||
| 
 | ||||
| 
 | ||||
| Как можно заметить, бинарные файлы bin, obj и project.layout пропали. | ||||
| 
 | ||||
| Закомитим файл игнорирования: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git add .gitignore | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git commit -m 'git: добавлен файл игнорирования' | ||||
| [main 0b0f71a] git: добавлен файл игнорирования | ||||
|  1 file changed, 3 insertions(+) | ||||
|  create mode 100644 .gitignore | ||||
| 
 | ||||
| 
 | ||||
| 15) Просмотрел коммиты репозитария: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git log --stat | ||||
| commit 0b0f71a0b032c71d9996df35ffc6b42336bcbe0c (HEAD -> main) | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:19:42 2023 +0300 | ||||
| 
 | ||||
|     git: добавлен файл игнорирования | ||||
| 
 | ||||
|  .gitignore | 3 +++ | ||||
|  1 file changed, 3 insertions(+) | ||||
| 
 | ||||
| commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7 | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:12:59 2023 +0300 | ||||
| 
 | ||||
|     code: добавлен вывод разности | ||||
| 
 | ||||
|  main.cpp | 3 ++- | ||||
|  1 file changed, 2 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| commit cdfe6e61aa8d95bcae4bddabd20581bfbca09f49 | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:12:11 2023 +0300 | ||||
| 
 | ||||
|     code: добавлен вывод суммы | ||||
| 
 | ||||
|  main.cpp | 1 + | ||||
|  1 file changed, 1 insertion(+) | ||||
| 
 | ||||
| commit 10365779994a810cb539361509747a5832e596fb | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:11:14 2023 +0300 | ||||
| 
 | ||||
|     code: добавлен ввод двух чисел | ||||
| 
 | ||||
|  main.cpp | 6 ++++-- | ||||
|  1 file changed, 4 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| commit e80d54bbefde66975d12337c80b3b55975a986f3 | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:07:26 2023 +0300 | ||||
| 
 | ||||
|     build: добавлен файл проекта | ||||
| 
 | ||||
|  project.cbp | 40 ++++++++++++++++++++++++++++++++++++++++ | ||||
|  1 file changed, 40 insertions(+) | ||||
| 
 | ||||
| commit 70a6613e8627d6238d356e93413ed72351145cb5 | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:06:22 2023 +0300 | ||||
| 
 | ||||
|     code: заготовка программы | ||||
| 
 | ||||
|  main.cpp | 9 +++++++++ | ||||
|  1 file changed, 9 insertions(+) | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git log --oneline --decorate | ||||
| 0b0f71a (HEAD -> main) git: добавлен файл игнорирования | ||||
| 00a04ef code: добавлен вывод разности | ||||
| cdfe6e6 code: добавлен вывод суммы | ||||
| 1036577 code: добавлен ввод двух чисел | ||||
| e80d54b build: добавлен файл проекта | ||||
| 70a6613 code: заготовка программы | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git log --oneline --decorate --all --graph | ||||
| * 0b0f71a (HEAD -> main) git: добавлен файл игнорирования | ||||
| * 00a04ef code: добавлен вывод разности | ||||
| * cdfe6e6 code: добавлен вывод суммы | ||||
| * 1036577 code: добавлен ввод двух чисел | ||||
| * e80d54b build: добавлен файл проекта | ||||
| * 70a6613 code: заготовка программы | ||||
| 
 | ||||
| 
 | ||||
| Поиск коммита, затрагивающий project.cbp: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git log -- project.cbp | ||||
| commit e80d54bbefde66975d12337c80b3b55975a986f3 | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:07:26 2023 +0300 | ||||
| 
 | ||||
|     build: добавлен файл проекта | ||||
| 
 | ||||
| 
 | ||||
| Поиск коммита, название которого имеет тему "build:" : | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git log --grep "build:" | ||||
| commit e80d54bbefde66975d12337c80b3b55975a986f3 | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:07:26 2023 +0300 | ||||
| 
 | ||||
|     build: добавлен файл проекта | ||||
| 
 | ||||
| 
 | ||||
| 16) Просмотр журнала: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git show HEAD | ||||
| commit 0b0f71a0b032c71d9996df35ffc6b42336bcbe0c (HEAD -> main) | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:19:42 2023 +0300 | ||||
| 
 | ||||
|     git: добавлен файл игнорирования | ||||
| 
 | ||||
| diff --git a/.gitignore b/.gitignore | ||||
| new file mode 100644 | ||||
| index 0000000..4d72a82 | ||||
| --- /dev/null | ||||
| +++ b/.gitignore | ||||
| @@ -0,0 +1,3 @@ | ||||
| +/bin | ||||
| +/obj | ||||
| +/project.layout | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 17) Просмотр коммитов (предпоследнего коммита): | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git show HEAD~1 | ||||
| commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7 | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:12:59 2023 +0300 | ||||
| 
 | ||||
|     code: добавлен вывод разности | ||||
| 
 | ||||
| diff --git a/main.cpp b/main.cpp | ||||
| index 1967dd8..2d3e243 100644 | ||||
| --- a/main.cpp | ||||
| +++ b/main.cpp | ||||
| @@ -7,6 +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'; | ||||
| 
 | ||||
|  } | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git show 00a04ef | ||||
| commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7 | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:12:59 2023 +0300 | ||||
| 
 | ||||
|     code: добавлен вывод разности | ||||
| 
 | ||||
| diff --git a/main.cpp b/main.cpp | ||||
| index 1967dd8..2d3e243 100644 | ||||
| --- a/main.cpp | ||||
| +++ b/main.cpp | ||||
| @@ -7,6 +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'; | ||||
| 
 | ||||
|  } | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git show main~1 | ||||
| commit 00a04efe36eb81bff41ac99ecbad7a6d28e925a7 | ||||
| Author: Alice (ZhalninVY) <ZhalninVY@mpei.ru> | ||||
| Date:   Sat May 20 19:12:59 2023 +0300 | ||||
| 
 | ||||
|     code: добавлен вывод разности | ||||
| 
 | ||||
| diff --git a/main.cpp b/main.cpp | ||||
| index 1967dd8..2d3e243 100644 | ||||
| --- a/main.cpp | ||||
| +++ b/main.cpp | ||||
| @@ -7,6 +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'; | ||||
| 
 | ||||
|  } | ||||
| 
 | ||||
| 
 | ||||
| 18) Просмотр изменений:  | ||||
| 
 | ||||
| Просмотрим изменения рабочей копии: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git diff | ||||
| warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it | ||||
| diff --git a/main.cpp b/main.cpp | ||||
| index 2d3e243..64da2d3 100644 | ||||
| --- a/main.cpp | ||||
| +++ b/main.cpp | ||||
| @@ -8,6 +8,7 @@ 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'; | ||||
| 
 | ||||
|  } | ||||
| diff --git a/project.cbp b/project.cbp | ||||
| index 99bb702..34f06bc 100644 | ||||
| --- a/project.cbp | ||||
| +++ b/project.cbp | ||||
| @@ -32,6 +32,7 @@ | ||||
|                         <Add option="-Wall" /> | ||||
|                         <Add option="-fexceptions" /> | ||||
|                 </Compiler> | ||||
| +               <Unit filename=".gitignore" /> | ||||
|                 <Unit filename="main.cpp" /> | ||||
|                 <Extensions> | ||||
|                         <lib_finder disable_auto="1" /> | ||||
| 
 | ||||
| Просмотр разницы изменений двух комитов  | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git diff 70a6613 00a04ef | ||||
| diff --git a/main.cpp b/main.cpp | ||||
| index b4392ec..2d3e243 100644 | ||||
| --- a/main.cpp | ||||
| +++ b/main.cpp | ||||
| @@ -4,6 +4,10 @@ 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'; | ||||
| + | ||||
|  } | ||||
| 
 | ||||
| 
 | ||||
| 19) Откат изменений | ||||
| 
 | ||||
| Во-первых, закомитил изменения рабочей копии (вывод произведения) | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git add main.cpp | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git commit -m 'code: добавлен вывод произведения' | ||||
| [main 48dbf41] code: добавлен вывод произведения | ||||
|  1 file changed, 2 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Далее делаем откат изменений к предыдущей версии | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git reset --hard HEAD~1 (HEAD~1 - коммит к которому откатывают изменения) | ||||
| HEAD is now at 0b0f71a git: добавлен файл игнорирования | ||||
| 
 | ||||
| или добавим комментарий над main() и откатим этот файл к состоянию в последнем коммите | ||||
|   | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git checkout HEAD -- main.cpp | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 20) Создание пары ключей для доступа к серверу | ||||
| 
 | ||||
| ssh-keygen | ||||
| 
 | ||||
| Запустим агент, который работает в фоне и предоставляет ключи другим программам, в том числе git: | ||||
| 
 | ||||
| eval $(ssh-agent -s) | ||||
| 
 | ||||
| 
 | ||||
| Далее скопировать открытый ключ при помощи команды cat ~/.ssh/id_rsa.pub и добавить в список открытых ключей своей учетной записи. | ||||
| 
 | ||||
| 21)Создаем репозитарий под названием cs-lab02. | ||||
| 
 | ||||
| Далее клонируем проект в каталог Bob: | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob | ||||
| $ git clone git@uit.mpei.ru:ZhalninVY/cs-lab02.git project | ||||
| Cloning into 'project'... | ||||
| 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. | ||||
| 
 | ||||
| 
 | ||||
| Далее переходим в каталог проекта (project): | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob | ||||
| $ cd project | ||||
| 
 | ||||
| После настраиваем git конфиг как с Alice: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git config user.name 'Bob (ZhalninVY)' | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git config user.email 'ZhalninVY@mpei.ru' | ||||
| 
 | ||||
| 
 | ||||
| 22)Совместная работа над проектом без конфликтов правок: | ||||
| 
 | ||||
| «На машине Боба» добавляем в программу печать произведения чисел и делаем коммит: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git add main.cpp | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git commit -m 'code: добавлен вывод произведения' | ||||
| [main 3b58c8d] code: добавлен вывод произведения | ||||
|  1 file changed, 2 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| 
 | ||||
| Отправляем коммит на сервер: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/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), 425 bytes | 425.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:ZhalninVY/cs-lab02.git | ||||
|    0b0f71a..3b58c8d  main -> main | ||||
| 
 | ||||
| «На машине Алисы» выполнить загрузку изменений: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R 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), 405 bytes | 81.00 KiB/s, done. | ||||
| From uit.mpei.ru:ZhalninVY/cs-lab02 | ||||
|    0b0f71a..3b58c8d  main       -> origin/main | ||||
| 
 | ||||
| 
 | ||||
| Просмотрим историю всех веток: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git log --oneline --decorate --all --graph | ||||
| * 3b58c8d (origin/main) code: добавлен вывод произведения | ||||
| * 0b0f71a (HEAD -> main) git: добавлен файл игнорирования | ||||
| * 00a04ef code: добавлен вывод разности | ||||
| * cdfe6e6 code: добавлен вывод суммы | ||||
| * 1036577 code: добавлен ввод двух чисел | ||||
| * e80d54b build: добавлен файл проекта | ||||
| * 70a6613 code: заготовка программы | ||||
| 
 | ||||
| 
 | ||||
| Как можно видеть, ветка main отстает на один коммит от ветки origin/main. Продвинем ветку main к скачанной версии: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git pull --ff-only | ||||
| Updating 0b0f71a..3b58c8d | ||||
| Fast-forward | ||||
|  main.cpp | 3 ++- | ||||
|  1 file changed, 2 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 23)Разрешение конфликтов при совместной работе | ||||
| 
 | ||||
| Дополним у Alice вывод максимума, у Bob - вывод минимума, попробуем сделать коммит и отправить его на сервер: | ||||
| 
 | ||||
| Для Alice: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git add main.cpp | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git commit -m 'code: добавлен вывод максимума' | ||||
| [main 9c53d6f] code: добавлен вывод максимума | ||||
|  1 file changed, 4 insertions(+) | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R 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), 435 bytes | 435.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:ZhalninVY/cs-lab02.git | ||||
|    a502524..9c53d6f  main -> main | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Для Bob: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git add main.cpp | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git commit -m 'code: добавлен вывод минимума' | ||||
| [main 29109c5] code: добавлен вывод минимума | ||||
|  1 file changed, 4 insertions(+) | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git push | ||||
| To uit.mpei.ru:ZhalninVY/cs-lab02.git | ||||
|  ! [rejected]        main -> main (fetch first) | ||||
| error: failed to push some refs to 'uit.mpei.ru:ZhalninVY/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. | ||||
| 
 | ||||
| 
 | ||||
| Удаленный репозитарий не принимает изменений: коммит Боба основан не на последнем существующем коммите. | ||||
| 
 | ||||
| Загрузим коммит из удаленного хранилища и после отобразим историю всех веток: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git pull --ff-only | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git log --oneline --decorate --all --graph | ||||
| * 112ed02 (HEAD -> main) code: Вывод минимума | ||||
| | * 4384564 (origin/main, origin/HEAD) code: Вывод максимума | ||||
| |/ | ||||
| * a41a855 code: Вывод деления | ||||
| * 45cd4c1 code: Вывод произведения | ||||
| * 8f9bb60 git: Файл игнорирования | ||||
| * 7835a20 code: Вывод разницы и суммы | ||||
| * 974994b code: Вывод суммы | ||||
| * 50bff83 code: Ввод переменных | ||||
| * 36b4362 code: заготовка программы | ||||
| 
 | ||||
| Можно видеть, что ветка main локального репозитария разошлась с веткой origin/main, то есть с веткой main на сервере. | ||||
| 
 | ||||
| Переместим коммит Bobа поверх коммита Алисы, то есть поверх origin/main: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R 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 112ed02... code: Вывод минимума | ||||
| 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". | ||||
| Could not apply 112ed02... code: Вывод минимума | ||||
| 
 | ||||
| Команда завершается с ошибкой, сообщающей о конфликте в main.cpp. | ||||
| 
 | ||||
| Проверим статус репозитария: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git status | ||||
| On branch main | ||||
| Your branch is ahead of 'origin/main' by 1 commit. //Ваша ветвь опережает 'origin/main' на 1 коммит. | ||||
|   (use "git push" to publish your local commits) | ||||
| 
 | ||||
| nothing added to commit but untracked files present (use "git add" to track) | ||||
| 
 | ||||
| Теперь разрешим конфликт в CodeBlocks и последобавляем файл в индекс, продолжаем прерванную операцию rebase: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git add main.cpp | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git rebase --continue | ||||
| 
 | ||||
| Проверяем, чтобы история хранилища была в надлежащем виде: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/bob/project (main) | ||||
| $ git log --oneline --decorate --all --graph | ||||
| * 2088abe (HEAD -> main, origin/main, origin/HEAD) code: добавлен вывод минимума | ||||
| * 9c53d6f code: добавлен вывод максимума | ||||
| * a502524 code: добавлен вывод частного | ||||
| * 3b58c8d code: добавлен вывод произведения | ||||
| * 0b0f71a git: добавлен файл игнорирования | ||||
| * 00a04ef code: добавлен вывод разности | ||||
| * cdfe6e6 code: добавлен вывод суммы | ||||
| * 1036577 code: добавлен ввод двух чисел | ||||
| * e80d54b build: добавлен файл проекта | ||||
| * 70a6613 code: заготовка программы | ||||
| 
 | ||||
| 24) Использование веток | ||||
| 
 | ||||
| Создадим ветку double: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git branch double | ||||
| 
 | ||||
| Переключимся на нее: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git checkout double | ||||
| Switched to branch 'double' | ||||
| 
 | ||||
| Заменим тип переменных а и b на double и сделаем коммит: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (double) | ||||
| $ git add main.cpp | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (double) | ||||
| $ git commit -m 'code: изменение типа на double' | ||||
| [double 7b6ff11] code: изменение типа на double | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| 
 | ||||
| Переключимся на ветку main: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (double) | ||||
| $ git checkout main | ||||
| Switched to branch 'main' | ||||
| Your branch is up to date with 'origin/main'. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Синхронизируем ветку main «на машине Алисы» с сервером. | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R 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 | 38.00 KiB/s, done. | ||||
| From uit.mpei.ru:ZhalninVY/cs-lab02 | ||||
|    9c53d6f..2088abe  main       -> origin/main | ||||
| 
 | ||||
| Продвинем ветку main к скачанной версии: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git pull --ff-only | ||||
| Updating 9c53d6f..2088abe | ||||
| Fast-forward | ||||
|  main.cpp | 4 ++++ | ||||
|  1 file changed, 4 insertions(+) | ||||
| 
 | ||||
| 
 | ||||
| Просмотрим историю всех веток. | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git log --oneline --decorate --all --graph | ||||
| * 7b6ff11 (double) code: изменение типа на double | ||||
| | * 2088abe (HEAD -> main, origin/main) code: добавлен вывод минимума | ||||
| |/ | ||||
| * 9c53d6f code: добавлен вывод максимума | ||||
| * a502524 code: добавлен вывод частного | ||||
| * 3b58c8d code: добавлен вывод произведения | ||||
| * 0b0f71a git: добавлен файл игнорирования | ||||
| * 00a04ef code: добавлен вывод разности | ||||
| * cdfe6e6 code: добавлен вывод суммы | ||||
| * 1036577 code: добавлен ввод двух чисел | ||||
| * e80d54b build: добавлен файл проекта | ||||
| * 70a6613 code: заготовка программы | ||||
| 
 | ||||
| 
 | ||||
| Сольем ветки double и main: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git merge double | ||||
| Auto-merging main.cpp | ||||
| Merge made by the 'ort' strategy. | ||||
|  main.cpp | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| 
 | ||||
| Просмотрим историю всех веток репозитария: | ||||
| 
 | ||||
| ПК@DESKTOP-NNUUA3R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||
| $ git log --oneline --decorate --all --graph | ||||
| *   af1896d (HEAD -> main) Merge branch 'double' true | ||||
| |\ | ||||
| | * 7b6ff11 (double) code: изменение типа на double | ||||
| * | 2088abe (origin/main) code: добавлен вывод минимума | ||||
| |/ | ||||
| * 9c53d6f code: добавлен вывод максимума | ||||
| * a502524 code: добавлен вывод частного | ||||
| * 3b58c8d code: добавлен вывод произведения | ||||
| * 0b0f71a git: добавлен файл игнорирования | ||||
| * 00a04ef code: добавлен вывод разности | ||||
| * cdfe6e6 code: добавлен вывод суммы | ||||
| * 1036577 code: добавлен ввод двух чисел | ||||
| * e80d54b build: добавлен файл проекта | ||||
| * 70a6613 code: заготовка программы | ||||
| 
 | ||||
| 
 | ||||
| В результате слияния образуется специальный новый коммит (merge commit). | ||||
					Загрузка…
					
					
				
		Ссылка в новой задаче