git Создание папок alice и bob. Создание папки project в alice. Переходы в папку project, переход обратно в alice и возвращение в project admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02 $ mkdir alice admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02 $ mkdir bob admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02 $ cd alice admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ mkdir project admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ cd .. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02 $ cd alice admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice $ cd project =============== Инициализация репозитария. Регистрация Алисы как пользователя admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project $ git init Initialized empty Git repository in C:/Users/admin/OneDrive/Рабочий стол/lab02/alice/project/.git/ admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git config user.name 'Alice (LedovskojMM)' admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git config user.email 'LedovskoyMM@mpei.ru' =================== Создание проекта в папке project =================== Проверка состояния, добавления main.cpp в индекс admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git status On branch master No commits yet Untracked files: (use "git add ..." to include in what will be committed) main.cpp project.cbp nothing added to commit but untracked files present (use "git add" to track) admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git add main.cpp admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ 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) project.cbp Изменение состояния связано с добавлением файла в индекс =============== Добавляем project.cbp в индекс, делаем коммит admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git commit -m 'code: заготовка программы' [master (root-commit) 7cd9939] code: заготовка программы 1 file changed, 9 insertions(+) create mode 100644 main.cpp admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git add project.cbp warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git commit -m 'build: добавлен файл проекта' [master c512bf7] build: добавлен файл проекта 1 file changed, 38 insertions(+) create mode 100644 project.cbp ================== Добавляем код в main.cpp, при помощи git status видим что файл изменен. Отличие с добавлением файла в том что файл уже отслеживается, в то время как во время добавления он не был в индексе admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git add main.cpp admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git status On branch master Changes to be committed: (use "git restore --staged ..." to unstage) modified: main.cpp Untracked files: (use "git add ..." to include in what will be committed) bin/ obj/ =================== Добавляем сумму и разность в код, сделать для них коммиты admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git add main.cpp admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git commit -m 'code: вывод a и b' [master 729b6df] code: вывод a и b 1 file changed, 5 insertions(+), 2 deletions(-) admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git add main.cpp admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git commit -m 'code: вывод a и b' [master 1483f94] code: вывод a и b 1 file changed, 1 insertion(+), 2 deletions(-) admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git add main.cpp admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git add -u admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git commit -m 'code: сумма а и b' [master ceab7d1] code: сумма а и b 1 file changed, 1 insertion(+), 1 deletion(-) admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git commit -a -m 'code: разность а и b' [master c4d2eda] code: разность а и b 1 file changed, 2 insertions(+), 1 deletion(-) ============== Добавление файла игнорирования /bin , /obj проверка статуса, добавление .gitignore в индекс и коммит admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git status On branch master Untracked files: (use "git add ..." to include in what will be committed) bin/ obj/ nothing added to commit but untracked files present (use "git add" to track) admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git status On branch master 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) admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git status On branch master 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) admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git add .gitignore admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git commit -a -m 'git: создание файла игнорирования' [master e21db3b] git: создание файла игнорирования 1 file changed, 2 insertions(+) create mode 100644 .gitignore =================== Вывод журнала репозитария. git log --stat для последнего коммита показывает добавление 1 файла и 2 изменений commit e21db3bc051b67768a1bbad70fc0394b04afeb9b (HEAD -> master) Author: Alice (LedovskojMM) Date: Sun Apr 9 19:36:46 2023 +0300 git: создание файла игнорирования .gitignore | 2 ++ 1 file changed, 2 insertions(+) commit c4d2eda0cab8006eeab1d21630aeb06c56fa2916 Author: Alice (LedovskojMM) Date: Sun Apr 9 18:54:38 2023 +0300 code: разность а и b main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ceab7d1386393e22dfaa50505af19494e330d5df Author: Alice (LedovskojMM) Date: Sun Apr 9 18:52:57 2023 +0300 code: сумма а и b main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1483f94c7f3476e4fdaa38929d8285b16d20bf3c Author: Alice (LedovskojMM) Date: Sun Apr 9 18:48:56 2023 +0300 code: вывод a и b main.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 729b6dfe10d07eaa16c644f2cb5da42698db5a5a Author: Alice (LedovskojMM) Date: Sun Apr 9 18:41:59 2023 +0300 code: вывод a и b main.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit c512bf75f75e6da532b1bc513e4789aa885995a1 Author: Alice (LedovskojMM) Date: Sun Apr 9 18:32:30 2023 +0300 build: добавлен файл проекта project.cbp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 7cd993923bbc9a5e135efb9b3b6ccdfa24773ec0 Author: Alice (LedovskojMM) Date: Sun Apr 9 18:28:06 2023 +0300 code: заготовка программы main.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) ~ ~ ~ ~ ~ ~ ~ ============ Просмотр коммитов связанных с project.cbp и с темой build admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git log --grep 'build:' commit c512bf75f75e6da532b1bc513e4789aa885995a1 Author: Alice (LedovskojMM) Date: Sun Apr 9 18:32:30 2023 +0300 build: добавлен файл проекта ========================== Просмотр предпоследнего коммита admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git show HEAD~1 commit c4d2eda0cab8006eeab1d21630aeb06c56fa2916 Author: Alice (LedovskojMM) Date: Sun Apr 9 18:54:38 2023 +0300 code: разность а и b diff --git a/main.cpp b/main.cpp index 20cd637..ad6d2bf 100644 --- a/main.cpp +++ b/main.cpp @@ -7,5 +7,6 @@ int main() cout << "Enter A and B: "; int a, b; cin >> a >> b; - cout << "A + B = " << a + b << '\n'; + cout << "A + B = " << a + b << '\n' + << "A - B = " << a - b << '\n'; } ==================================== Смотрим изменения в рабочей копии.Показало все изменения в коде программы.Разница между начальным и выбранным файлом. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git diff diff --git a/main.cpp b/main.cpp index ad6d2bf..10bccc6 100644 --- a/main.cpp +++ b/main.cpp @@ -8,5 +8,6 @@ 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'; } ======================================== Просмотр изменений между самым первым коммитом и коммитом, добавляющим вывод разности. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git diff HEAD~5 HEAD~1 diff --git a/main.cpp b/main.cpp index b4392ec..ad6d2bf 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'; } ========================================== коммит произведения и откат с помощью комманд reset и checkout. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git commit -a -m 'code: добавление вывода произведения а и b' [master 02850a1] code: добавление вывода произведения а и b 1 file changed, 2 insertions(+), 1 deletion(-) admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git reset --hard HEAD~1 HEAD is now at e21db3b git: создание файла игнорирования admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git checkout HEAD -- main.cpp ========================================== Создал репозитарий. ========================================= Добавил произведение через боба и закоммитил его. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (master) $ git commit -a -m 'code: добавить произведение а и b' [master 216e87c] code: добавить произведение а и b 1 file changed, 2 insertions(+), 1 deletion(-) admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (master) $ git status On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working tree clean ======================================== Добавил на Алисе печать частного и кинул в репозитарий, затем подкачал изменения за боба. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git commit -a -m 'code: добавить частное а и b' [master 0674498] code: добавить частное а и b 1 file changed, 2 insertions(+), 1 deletion(-) admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ 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), 419 bytes | 419.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:LedovskoyMM/lab02.git 216e87c..0674498 master -> master admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (master) $ git log --oneline --decorate --all --graph * 0674498 (origin/master, origin/HEAD) code: добавить частное а и b * 216e87c (HEAD -> master) code: добавить произведение а и b * e21db3b git: создание файла игнорирования * c4d2eda code: разность а и b * ceab7d1 code: сумма а и b * 1483f94 code: вывод a и b * 729b6df code: вывод a и b * c512bf7 build: добавлен файл проекта * 7cd9939 code: заготовка программы admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (master) $ git pull --ff-only Updating 216e87c..0674498 Fast-forward main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ===================================================== пытался добавить печать минимума за боба, но вывелось противоречие. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (master) $ git push To uit.mpei.ru:LedovskoyMM/lab02.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'uit.mpei.ru:LedovskoyMM/lab02.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (master) $ git pull --ff-only fatal: Not possible to fast-forward, aborting. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (master) $ git log --oneline --decorate --all --graph * 4762e62 (HEAD -> master) code: добавить вывод минимума | * ee215ef (origin/master, origin/HEAD) code: добавить вывод максимума |/ * 0674498 code: добавить частное а и b * 216e87c code: добавить произведение а и b * e21db3b git: создание файла игнорирования * c4d2eda code: разность а и b * ceab7d1 code: сумма а и b * 1483f94 code: вывод a и b * 729b6df code: вывод a и b * c512bf7 build: добавлен файл проекта * 7cd9939 code: заготовка программы =============================================== В хранилище показаны расхождения с версией сервера. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (master) $ git rebase origin/master Auto-merging main.cpp CONFLICT (content): Merge conflict in main.cpp error: could not apply 4762e62... code: добавить вывод минимума hint: Resolve all conflicts manually, mark them as resolved with hint: "git add/rm ", 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 4762e62... code: добавить вывод минимума admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (master|REBASE 1/1) $ git add main.cpp admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/bob 0 [sig] bash 725! sigpacket::process: Suppressing signal $ git rebase --continue hint: Waiting for your editor to close the file... t::process: Suppressing signal 18 to win32 process (pid 28100) 5943086 [sig] bash 725! sigpacket::process: Suppress [detached HEAD b19d81a] code: добавить вывод минимума 1 file changed, 2 insertions(+), 2 deletions(-) Successfully rebased and updated refs/heads/master. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/bob/project (master) $ git log --oneline --decorate --all --graph * b19d81a (HEAD -> master) code: добавить вывод минимума * ee215ef (origin/master, origin/HEAD) code: добавить вывод максимума * 0674498 code: добавить частное а и b * 216e87c code: добавить произведение а и b * e21db3b git: создание файла игнорирования * c4d2eda code: разность а и b * ceab7d1 code: сумма а и b * 1483f94 code: вывод a и b * 729b6df code: вывод a и b * c512bf7 build: добавлен файл проекта * 7cd9939 code: заготовка программы ============================================== посмотрел историю всех веток. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git log --oneline --decorate --all --graph * 3785cdf (double) code: изменение на вещественные числа | * b19d81a (HEAD -> master, origin/master) code: добавить вывод минимума |/ * ee215ef code: добавить вывод максимума * 0674498 code: добавить частное а и b * 216e87c code: добавить произведение а и b * e21db3b git: создание файла игнорирования * c4d2eda code: разность а и b * ceab7d1 code: сумма а и b * 1483f94 code: вывод a и b * 729b6df code: вывод a и b * c512bf7 build: добавлен файл проекта * 7cd9939 code: заготовка программы ========================================== слил ветки. admin@MSI MINGW64 ~/OneDrive/Рабочий стол/lab02/alice/project (master) $ git log --oneline --decorate --all --graph * 2e7e849 (HEAD -> master) Merge branch 'double' |\ | * 3785cdf (double) code: изменение на вещественные числа * | b19d81a (origin/master) code: добавить вывод минимума |/ * ee215ef code: добавить вывод максимума * 0674498 code: добавить частное а и b * 216e87c code: добавить произведение а и b * e21db3b git: создание файла игнорирования * c4d2eda code: разность а и b * ceab7d1 code: сумма а и b * 1483f94 code: вывод a и b * 729b6df code: вывод a и b * c512bf7 build: добавлен файл проекта * 7cd9939 code: заготовка программы ================================================