Родитель
							
								
									91e8d65e23
								
							
						
					
					
						Сommit
						0e9de90277
					
				| @ -0,0 +1,765 @@ | |||||||
|  | Отчет по лабораторной работе № 2 "Система контроля версий Git" | ||||||
|  | 
 | ||||||
|  | Выполнил: Троянов Д.С. | ||||||
|  | Группа:   А-01-22 | ||||||
|  | Проверил:  | ||||||
|  | 
 | ||||||
|  | Примечание: работа выполнялась на Windows. | ||||||
|  | 
 | ||||||
|  | 1) Создал на рабочем столе каталог lab02.02 и запустил в нем Git Bash, приглашение: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02 | ||||||
|  | $ | ||||||
|  | 
 | ||||||
|  | 2) Просмотрел файлы в рабочем каталоге можно командой "ls" - пусто: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02 | ||||||
|  | $ ls | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02 | ||||||
|  | $ | ||||||
|  | 
 | ||||||
|  | 3) Создал каталоги Алисы и Боба, создал каталог "project", | ||||||
|  | изучил команду "cd" в процессе: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02 | ||||||
|  | $ mkdir alice | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02 | ||||||
|  | $ mkdir bob | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02 | ||||||
|  | $ cd alice | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice | ||||||
|  | $ mkdir project | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice | ||||||
|  | $ cd project | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project | ||||||
|  | $ cd .. | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice | ||||||
|  | $ cd project | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project | ||||||
|  | $ | ||||||
|  | 
 | ||||||
|  | 4) Инициализировал репозитарий, изменил имя ветки и через команду ls -A увидел его наличие: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project | ||||||
|  | $ git init | ||||||
|  | Initialized empty Git repository in C:/Users/Даниил/Desktop/lab02.02/alice/project/ | ||||||
|  | .git/ | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (master) | ||||||
|  | $ ls -A | ||||||
|  | .git/ | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (master) | ||||||
|  | $ git branch -m master main | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ | ||||||
|  | 
 | ||||||
|  | 5) Настроил репозитарий, чтобы коммиты были от моего имени: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main)  | ||||||
|  | $ git config user.name 'Alice (TroyanovDS)' | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git config user.email 'TroyanovDS@mpei.ru' | ||||||
|  | 
 | ||||||
|  | 6) Запустил CodeBlocks и создал проект в репозитарии Алисы: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/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) | ||||||
|  |         main.cpp | ||||||
|  |         main.exe | ||||||
|  |         main.o                                                                   | ||||||
|  |         project.cbp | ||||||
|  |         project.layout | ||||||
|  | 
 | ||||||
|  | nothing added to commit but untracked files present (use "git add" to track) | ||||||
|  | 
 | ||||||
|  | 7) Заношу файл main.cpp под Git | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git add main.cpp | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/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     (Git начал отслеживать файл) | ||||||
|  | 
 | ||||||
|  | Untracked files: | ||||||
|  |   (use "git add <file>..." to include in what will be committed) | ||||||
|  |         main.exe | ||||||
|  |         main.o | ||||||
|  |         project.cbp | ||||||
|  |         project.layout //Неотслеживаемые файлы | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 8) Закомитил файл main.cpp и короткое сообщение (в одинарных или двойных ковычках):  | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git commit -m 'code: заготовка программы' | ||||||
|  | [main (root-commit)  36b4362 //хэш коммита] code: заготовка программы | ||||||
|  |  1 file changed, 17 insertions(+) //Сводная статистика изменений | ||||||
|  |  create mode 100644 main.cpp                 | ||||||
|  | 
 | ||||||
|  | 9) Добавил файл project.cbp в индекс, закомител его с комментарием: (Замечание: Во время выполнения задания первая моя попытка привела к вылету репозитария и все полетело, поэтому я начал заново все делать и забыл закоммитить файл project.cbp. В отчете я предоставил коммит этого файла при первой попытке выполнения задания. Прошу прощения за предоставленные неудобства) | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R 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 n | ||||||
|  | ext time Git touches it | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git commit -m 'build: добавлен файл проекта' | ||||||
|  | [main 216d951] build: добавлен файл проекта | ||||||
|  |  1 file changed, 31 insertions(+) | ||||||
|  |  create mode 100644 project.cbp | ||||||
|  | 
 | ||||||
|  | 10) Использование команды $ git status после изменения файла main.cpp:  | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/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/ | ||||||
|  |         main.exe | ||||||
|  |         main.o | ||||||
|  |         obj/ | ||||||
|  |         project.layout //Неотслеживаемые файлы | ||||||
|  | 
 | ||||||
|  | no changes added to commit (use "git add" and/or "git commit -a") | ||||||
|  | 
 | ||||||
|  | При сравнении случаев, когда добавлялся новый файл, и когда изменился существующий, можно заметить, что  | ||||||
|  | в случае, когда файл был изменен после добавления в индекс, изменения необходимо закомитить отдельно. | ||||||
|  | 
 | ||||||
|  | 11) 1 способ закомитить изменения: | ||||||
|  | 
 | ||||||
|  | Выбрать файлы, изменения которых должны войти в коммит, затем сделать коммит: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git add main.cpp | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git commit -m "code:  code: Ввод переменных" | ||||||
|  | [main 50bff83] code:  code: Ввод переменных | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | 12) 2 способ закомитить изменения: | ||||||
|  | 
 | ||||||
|  | Добавить в индекс все изменения, затем сделать коммит: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git add -u | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git commit -m "code: Вывод суммы" | ||||||
|  | [main 974994b] code: Вывод суммы | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
|  |   | ||||||
|  | 13) 3 способ закомитить изенения: | ||||||
|  | 
 | ||||||
|  | Добавить все изменения в индекс и сделать коммит в один шаг: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git commit -a -m "code: Вывод разницы и суммы" | ||||||
|  | [main 7835a20] code: Вывод разницы и суммы | ||||||
|  |  1 file changed, 2 insertions(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | Удобен когда коммит меняет уже существующий файл. | ||||||
|  | 
 | ||||||
|  | 14) Игнорирование файлов: | ||||||
|  | 
 | ||||||
|  | Создаем файл в codeblocks с подпись /bin, /obj и /project.layout в разных строках | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/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:   project.cbp | ||||||
|  | 
 | ||||||
|  | Untracked files: | ||||||
|  |   (use "git add <file>..." to include in what will be committed) | ||||||
|  |         .gitignore | ||||||
|  |         main.o | ||||||
|  |          | ||||||
|  | 
 | ||||||
|  | no changes added to commit (use "git add" and/or "git commit -a") | ||||||
|  | 
 | ||||||
|  | Как можно заметить, бинарный файлы bin, obj и project.layout пропали. | ||||||
|  | 
 | ||||||
|  | Закомитим файл игнорирования: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git add .gitignore | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git commit -m "git: "файл игнорирования" | ||||||
|  | [main 8f9bb60] git: файл игнорирования | ||||||
|  |  Date: Mon Mar 13 10:57:03 2023 +0300 | ||||||
|  |  1 file changed, 2 insertions(+) | ||||||
|  |  create mode 100644 .gitignore | ||||||
|  | 
 | ||||||
|  | 15) Просмотрел коммиты репозитария: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git log --stat | ||||||
|  | commit 8f9bb60ac01d4739d072e22a8e6870aa6302d714 (HEAD -> main) | ||||||
|  | Author: Alice (TroyanovDS) <TroyanovDS@mpei.ru> | ||||||
|  | Date:   Sun Mar 19 16:46:41 2023 +0300 | ||||||
|  | 
 | ||||||
|  |     git: Файл игнорирования | ||||||
|  | 
 | ||||||
|  |  .gitignore | 3 +++ | ||||||
|  |  1 file changed, 3 insertions(+) | ||||||
|  | 
 | ||||||
|  | commit 7835a20b2b1bcb15a4f88eefabb5d2b0bfbfed3b | ||||||
|  | Author: Alice (TroyanovDS) <TroyanovDS@mpei.ru> | ||||||
|  | Date:   Sun Mar 19 16:37:15 2023 +0300 | ||||||
|  | 
 | ||||||
|  |     code: Вывод разницы и суммы | ||||||
|  | 
 | ||||||
|  |  main.cpp | 2 +- | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | commit 974994b8ee2887372bb22923deff0bf490304589 (хеш коммита) | ||||||
|  | Author: Alice (TroyanovDS) <TroyanovDS@mpei.ru> (автор создания) | ||||||
|  | Date:   Sun Mar 19 16:35:58 2023 +0300 (дата создания) | ||||||
|  | 
 | ||||||
|  |     code: Вывод суммы | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git log --oneline --decorate | ||||||
|  | 8f9bb60(HEAD -> main) git: файл игнорирования | ||||||
|  | 7835a20 code: Вывод разницы и суммы | ||||||
|  | 974994b code: Вывод суммы | ||||||
|  | 50bff83 code: Ввод переменных | ||||||
|  | 36b4362 code: заготовка программы | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git log --oneline --decorate --all --graph | ||||||
|  | * 8f9bb60 (HEAD -> main) git: Файл игнорирования | ||||||
|  | * 7835a20 code: Вывод разницы и суммы | ||||||
|  | * 974994b code: Вывод суммы | ||||||
|  | * 50bff83 code: Ввод переменных | ||||||
|  | * 36b4362 code: заготовка программы | ||||||
|  | 
 | ||||||
|  | Поиск коммита, затрагивающий project.cbp: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git log -- project.cbp | ||||||
|  | commit 216d951de10e0fe0f8ceb783c979a3ff5cf5b889 | ||||||
|  | Author: Alice (TroyanovDS) <TroyanovDS@mpei.ru> | ||||||
|  | Date:   Sat Mar 11 21:39:43 2023 +0300 | ||||||
|  | 
 | ||||||
|  |     build: добавлен файл проекта | ||||||
|  | 
 | ||||||
|  | Поиск коммита, название которого имеет тему "build:" : | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git log --grep "build: " | ||||||
|  | commit 216d951de10e0fe0f8ceb783c979a3ff5cf5b889 | ||||||
|  | Author: Alice (TroyanovDS) <TroyanovDS@mpei.ru> | ||||||
|  | Date:   Sat Mar 11 21:39:43 2023 +0300 | ||||||
|  | 
 | ||||||
|  |     build: добавлен файл проекта | ||||||
|  | 
 | ||||||
|  | 16) Просмотр журнала: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git show HEAD | ||||||
|  | commit 8f9bb60ac01d4739d072e22a8e6870aa6302d714 | ||||||
|  | Author: Alice (TroyanovDS) <TroyanovDS@mpei.ru> | ||||||
|  | Date:   Sun Mar 19 16:46:41 2023 +0300 | ||||||
|  | 
 | ||||||
|  |     git: Файл игнорирования | ||||||
|  | 
 | ||||||
|  | diff --git a/.gitignore b/.gitignore | ||||||
|  | new file mode 100644 | ||||||
|  | index 0000000..bdcd1e7 | ||||||
|  | --- /dev/null | ||||||
|  | +++ b/.gitignore | ||||||
|  | @@ -0,0 +1,3 @@ | ||||||
|  | +/bin | ||||||
|  | +/obj | ||||||
|  | +/project.layout | ||||||
|  | \ No newline at end of file | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 17) Просмотр коммитов (предпоследнего коммита): | ||||||
|  | 
 | ||||||
|  | 1. Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git show HEAD~1 | ||||||
|  | commit 7835a20b2b1bcb15a4f88eefabb5d2b0bfbfed3b | ||||||
|  | Author: Alice (TroyanovDS) <TroyanovDS@mpei.ru> | ||||||
|  | Date:   Sun Mar 19 16:37:15 2023 +0300 | ||||||
|  | 
 | ||||||
|  |     code: Вывод разницы и суммы | ||||||
|  | 
 | ||||||
|  | diff --git a/main.cpp b/main.cpp | ||||||
|  | index 690f74f..0007b54 100644 | ||||||
|  | --- a/main.cpp | ||||||
|  | +++ b/main.cpp | ||||||
|  | @@ -8,5 +8,5 @@ int main() | ||||||
|  |      int a, b; | ||||||
|  |      cin >> a >> b; | ||||||
|  | 
 | ||||||
|  | -    cout << "A + B = " << a + b << '\n'; | ||||||
|  | +    cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n'; | ||||||
|  |  } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 2. Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git show main~1								 | ||||||
|  | commit 7835a20b2b1bcb15a4f88eefabb5d2b0bfbfed3b | ||||||
|  | Author: Alice (TroyanovDS) <TroyanovDS@mpei.ru> | ||||||
|  | Date:   Sun Mar 19 16:37:15 2023 +0300 | ||||||
|  | 
 | ||||||
|  |     code: Вывод разницы и суммы | ||||||
|  | 
 | ||||||
|  | diff --git a/main.cpp b/main.cpp | ||||||
|  | index 690f74f..0007b54 100644 | ||||||
|  | --- a/main.cpp | ||||||
|  | +++ b/main.cpp | ||||||
|  | @@ -8,5 +8,5 @@ int main() | ||||||
|  |      int a, b; | ||||||
|  |      cin >> a >> b; | ||||||
|  | 
 | ||||||
|  | -    cout << "A + B = " << a + b << '\n'; | ||||||
|  | +    cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n'; | ||||||
|  |  } | ||||||
|  | 
 | ||||||
|  | 3. Просмотр предпоследнего коммита через указание его хэша | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git show 7835a20 | ||||||
|  | commit 7835a20b2b1bcb15a4f88eefabb5d2b0bfbfed3b | ||||||
|  | Author: Alice (TroyanovDS) <TroyanovDS@mpei.ru> | ||||||
|  | Date:   Sun Mar 19 16:37:15 2023 +0300 | ||||||
|  | 
 | ||||||
|  |     code: Вывод разницы и суммы | ||||||
|  | 
 | ||||||
|  | diff --git a/main.cpp b/main.cpp | ||||||
|  | index 690f74f..0007b54 100644 | ||||||
|  | --- a/main.cpp | ||||||
|  | +++ b/main.cpp | ||||||
|  | @@ -8,5 +8,5 @@ int main() | ||||||
|  |      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-FBA8R1R MINGW64 ~/Desktop/lab02/alice/project (main) | ||||||
|  | $ git diff | ||||||
|  | diff --git a/.gitignore b/.gitignore | ||||||
|  | deleted file mode 100644 | ||||||
|  | index bdcd1e7..0000000 | ||||||
|  | --- a/.gitignore | ||||||
|  | +++ /dev/null | ||||||
|  | @@ -1,3 +0,0 @@ | ||||||
|  | -/bin (отсутствие строчки)  | ||||||
|  | -/obj (отсутствие строчки) | ||||||
|  | -/project.layout (отсутствие строчки) | ||||||
|  | \ No newline at end of file | ||||||
|  | diff --git a/main.cpp b/main.cpp | ||||||
|  | index 0afddc3..0007b54 100644 | ||||||
|  | --- a/main.cpp | ||||||
|  | +++ b/main.cpp | ||||||
|  | @@ -8,5 +8,5 @@ int main() | ||||||
|  |      int a, b; | ||||||
|  |      cin >> a >> b; | ||||||
|  | 
 | ||||||
|  | -    cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n' << "A*B (отсутствие строчки) | ||||||
|  | = " << a*b << '\n'; | ||||||
|  | +    cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n'; (добавление строчки) | ||||||
|  |  } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git diff HEAD~2 | ||||||
|  | diff --git a/.gitignore b/.gitignore | ||||||
|  | new file mode 100644 | ||||||
|  | index 0000000..bdcd1e7 | ||||||
|  | --- /dev/null | ||||||
|  | +++ b/.gitignore | ||||||
|  | @@ -0,0 +1,3 @@ | ||||||
|  | +/bin | ||||||
|  | +/obj | ||||||
|  | +/project.layout | ||||||
|  | \ No newline at end of file | ||||||
|  | diff --git a/main.cpp b/main.cpp | ||||||
|  | index 690f74f..0007b54 100644 | ||||||
|  | --- a/main.cpp | ||||||
|  | +++ b/main.cpp | ||||||
|  | @@ -8,5 +8,5 @@ int main() | ||||||
|  |      int a, b; | ||||||
|  |      cin >> a >> b; | ||||||
|  | 
 | ||||||
|  | -    cout << "A + B = " << a + b << '\n'; | ||||||
|  | +    cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n'; | ||||||
|  |  } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Просмотр разницы изменений двух комитов  | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git diff 36b4362 7835a20 | ||||||
|  | diff --git a/main.cpp b/main.cpp | ||||||
|  | index b4392ec..0007b54 100644 | ||||||
|  | --- a/main.cpp | ||||||
|  | +++ b/main.cpp | ||||||
|  | @@ -4,6 +4,9 @@ using namespace std; | ||||||
|  | 
 | ||||||
|  |  int main() | ||||||
|  |  { | ||||||
|  | -    cout << "Hello world!" << endl; | ||||||
|  | -    return 0; | ||||||
|  | +    cout << "Enter A and B: "; | ||||||
|  | +    int a, b; | ||||||
|  | +    cin >> a >> b; | ||||||
|  | + | ||||||
|  | +    cout << "A + B = " << a + b << '\n' << "A - B = " << a - b << '\n'; | ||||||
|  |  } | ||||||
|  | 
 | ||||||
|  | 19) Откат изменений | ||||||
|  | 
 | ||||||
|  | Во-первых, закомитил изменения рабочей копии (вывод произведения) | ||||||
|  | 
 | ||||||
|  | Далее делаем откат изменений к предыдущей версии | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git reset --hard HEAD~1 (HEAD~1 - коммит к которому откатывают изменения) | ||||||
|  | HEAD is now at 8f9bb60 git: файл игнорирования | ||||||
|  | 
 | ||||||
|  | или добавим комментарий над main() и откатим этот файл к состоянию в последнем коммите  | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R 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-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob | ||||||
|  | $  git clone git@uit.mpei.ru:TroyanovDS/cs-lab02.git project | ||||||
|  | 
 | ||||||
|  | Далее переходим в каталог проекта (project): | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob | ||||||
|  | $ cd project | ||||||
|  | 
 | ||||||
|  | После настраиваем git конфиг как с Alice: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git config user.name 'Bob (TroyanovDS)' | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git config user.email 'TroyanovDS@mpei.ru' | ||||||
|  | 
 | ||||||
|  | 22)Совместная работа над проектом без конфликтов правок: | ||||||
|  | 
 | ||||||
|  | «На машине Боба» добавляем в программу печать произведения чисел и делаем коммит: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git add main.cpp | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git commit -m "code: Вывод произведения" | ||||||
|  | [main 45cd4c1] code: Вывод произведения | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | Отправляем коммит на сервер: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git push | ||||||
|  | 
 | ||||||
|  | «На машине Алисы» выполнить загрузку изменений: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git fetch | ||||||
|  | 
 | ||||||
|  | Просмотрим историю всех веток: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git log --oneline --decorate --all --graph | ||||||
|  | * 45cd4c1 (origin/main) code: Вывод произведения | ||||||
|  | * 8f9bb60 (HEAD -> main) git: Файл игнорирования | ||||||
|  | * 7835a20 code: Вывод разницы и суммы | ||||||
|  | * 974994b code: Вывод суммы | ||||||
|  | * 50bff83 code: Ввод переменных | ||||||
|  | * 36b4362 code: заготовка программы | ||||||
|  | 
 | ||||||
|  | Как можно видеть, ветка main отстает на один коммит от ветки origin/main. Продвинем ветку main к скачанной версии: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git pull --ff-only | ||||||
|  | Updating 8f9bb60..45cd4c1 | ||||||
|  | Fast-forward | ||||||
|  |  main.cpp | 2 +- | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 23)Разрешение конфликтов при совместной работе | ||||||
|  | 
 | ||||||
|  | Дополним у Alice вывод максимума, у Bob - вывод минимума, попробуем сделать коммит и отправить его на сервер: | ||||||
|  | 
 | ||||||
|  | Для Alice: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git add main.cpp | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git commit -m "code: Вывод максимума" | ||||||
|  | [main 4384564] code: Вывод максимума | ||||||
|  |  1 file changed, 9 insertions(+) | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/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), 398 bytes | 398.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:TroyanovDS/cs-lab02.git | ||||||
|  |    a41a855..4384564  main -> main | ||||||
|  | 
 | ||||||
|  | Для Bob: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git add main.cpp | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git commit -m "code: Вывод минимума" | ||||||
|  | [main 112ed02] code: Вывод минимума | ||||||
|  |  1 file changed, 9 insertions(+) | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git push | ||||||
|  | Enter passphrase for key '/c/Users/Даниил/.ssh/id_rsa': | ||||||
|  | To uit.mpei.ru:TroyanovDS/cs-lab02.git | ||||||
|  |  ! [rejected]        main -> main (fetch first) | ||||||
|  | error: failed to push some refs to 'uit.mpei.ru:TroyanovDS/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-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git pull --ff-only | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/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-FBA8R1R MINGW64 ~/Desktop/lab02.02/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-FBA8R1R MINGW64 ~/Desktop/lab02.02/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) | ||||||
|  | 
 | ||||||
|  | Untracked files: //Неотслеживаемые файлы | ||||||
|  |   (use "git add <file>..." to include in what will be committed) | ||||||
|  |         main.exe | ||||||
|  |         main.o | ||||||
|  | 
 | ||||||
|  | nothing added to commit but untracked files present (use "git add" to track) | ||||||
|  | 
 | ||||||
|  | Теперь разрешим конфликт в CodeBlocks и последобавляем файл в индекс, продолжаем прерванную операцию rebase: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git add main.cpp | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git rebase --continue | ||||||
|  | 
 | ||||||
|  | Проверяем, чтобы история хранилища была в надлежащем виде: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/bob/project (main) | ||||||
|  | $ git log --oneline --decorate --all --graph | ||||||
|  | * ef95f84 (HEAD -> main, origin/main, origin/HEAD) code: Вывод минимума | ||||||
|  | * 4384564 code: Вывод максимума | ||||||
|  | * a41a855 code: Вывод деления | ||||||
|  | * 45cd4c1 code: Вывод произведения | ||||||
|  | * 8f9bb60 git: Файл игнорирования | ||||||
|  | * 7835a20 code: Вывод разницы и суммы | ||||||
|  | * 974994b code: Вывод суммы | ||||||
|  | * 50bff83 code: Ввод переменных | ||||||
|  | * 36b4362 code: заготовка программы | ||||||
|  | 
 | ||||||
|  | 24) Использование веток | ||||||
|  | 
 | ||||||
|  | Создадим ветку double: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git branch double | ||||||
|  | 
 | ||||||
|  | Переключимся на нее: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git checkout double | ||||||
|  | Switched to branch 'double' | ||||||
|  | 
 | ||||||
|  | Заменим тип переменных а и b на double и сделаем коммит: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (double) | ||||||
|  | $ git add main.cpp | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (double) | ||||||
|  | $ git commit -m "code: Изменение типа на double" | ||||||
|  | [double b279aed] code: Изменение типа на double | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | Переключимся на ветку main: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (double) | ||||||
|  | $ git checkout main | ||||||
|  | Switched to branch 'main' | ||||||
|  | Your branch is up to date with 'origin/main'. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Синхронизируем ветку main «на машине Алисы» с сервером. | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/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), 347 bytes | 11.00 KiB/s, done. | ||||||
|  | From uit.mpei.ru:TroyanovDS/cs-lab02 | ||||||
|  |    4384564..ef95f84  main       -> origin/main | ||||||
|  | 
 | ||||||
|  | Продвинем ветку main к скачанной версии: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git pull --ff-only | ||||||
|  | Updating 4384564..ef95f84 | ||||||
|  | Fast-forward | ||||||
|  |  main.cpp | 6 ++++-- | ||||||
|  |  1 file changed, 4 insertions(+), 2 deletions(-) | ||||||
|  | 
 | ||||||
|  | Просмотрим историю всех веток. | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git log --oneline --decorate --all --graph | ||||||
|  | * b279aed (double) code: Изменение типа на double | ||||||
|  | | * ef95f84 (HEAD -> main, origin/main) code: Вывод минимума | ||||||
|  | |/ | ||||||
|  | * 4384564 code: Вывод максимума | ||||||
|  | * a41a855 code: Вывод деления | ||||||
|  | * 45cd4c1 code: Вывод произведения | ||||||
|  | * 8f9bb60 git: Файл игнорирования | ||||||
|  | * 7835a20 code: Вывод разницы и суммы | ||||||
|  | * 974994b code: Вывод суммы | ||||||
|  | * 50bff83 code: Ввод переменных | ||||||
|  | * 36b4362 code: заготовка программы | ||||||
|  | 
 | ||||||
|  | Сольем ветки double и main: | ||||||
|  | 
 | ||||||
|  | Даниил@DESKTOP-FBA8R1R MINGW64 ~/Desktop/lab02.02/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-FBA8R1R MINGW64 ~/Desktop/lab02.02/alice/project (main) | ||||||
|  | $ git log --oneline --decorate --all --graph | ||||||
|  | *   91e8d65 (HEAD -> main) Merge branch 'double' | ||||||
|  | |\ | ||||||
|  | | * b279aed (double) code: Изменение типа на double | ||||||
|  | * | ef95f84 (origin/main) code: Вывод минимума | ||||||
|  | |/ | ||||||
|  | * 4384564 code: Вывод максимума | ||||||
|  | * a41a855 code: Вывод деления | ||||||
|  | * 45cd4c1 code: Вывод произведения | ||||||
|  | * 8f9bb60 git: Файл игнорирования | ||||||
|  | * 7835a20 code: Вывод разницы и суммы | ||||||
|  | * 974994b code: Вывод суммы | ||||||
|  | * 50bff83 code: Ввод переменных | ||||||
|  | * 36b4362 code: заготовка программы | ||||||
|  | 
 | ||||||
|  | В результате слияния образуется специальный новый коммит (merge commit). | ||||||
| @ -0,0 +1,34 @@ | |||||||
|  | <?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="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="Untitled1.c"> | ||||||
|  | 			<Option compilerVar="CC" /> | ||||||
|  | 		</Unit> | ||||||
|  | 		<Unit filename="main.cpp" /> | ||||||
|  | 		<Extensions> | ||||||
|  | 			<lib_finder disable_auto="1" /> | ||||||
|  | 		</Extensions> | ||||||
|  | 	</Project> | ||||||
|  | </CodeBlocks_project_file> | ||||||
					Загрузка…
					
					
				
		Ссылка в новой задаче
	
	 Alice (TroyanovDS)
						Alice (TroyanovDS)