git config user.email 'почта'
«На машине Боба» добавим в программу печать произведения чисел Выберем файл, изменение которого должно войти в коммит
git add main.cpp
Сделаем коммит
git commit -m "Вывод произведения" Просмотрим последний коммит
git show HEAD
Отправим коммит на GitHub git push
«На машине Алисы» выполним загрузку изменений git fetch
Просмотрим историю всех веток git log --oneline --decorate --all --graph
Продвинем ветку master к скачанной версии git pull --ff-only
«От имени Алисы» добавим в программу печать деления Выберем файл, изменение которого должно войти в коммит git add main.cpp
Сделаем коммит
git commit -m "Вывод деления"
Просмотрим последний коммит git show HEAD
Отправим коммит на GitHub git push
«На машине Боба» выполним загрузку изменений git fetch
Просмотрим историю всех веток git log --oneline --decorate --all --graph
Продвинем ветку master к скачанной версии git pull --ff-only
«На машине Алисы» дополним программу печатью максимума Выберем файл, изменение которого должно войти в коммит git add main.cpp
Сделаем коммит
git commit -m "Вывод максимума" Просмотрим последний коммит git show HEAD
Отправим коммит на GitHub git push
«На машине Боба» дополним программу печатью минимума Выберем файл, изменение которого должно войти в коммит
6
git add main.cpp
Сделаем коммит
git commit -m "Вывод минимума"
Просмотрим последний коммит git show HEAD
Попытаемся отправить коммит на GitHub git push
Удаленный репозитарий не принимает изменений: коммит Боба основан не на последнем существующем коммите «На машине Боба» выполним загрузку изменений
git fetch
Просмотрим историю всех веток git log --oneline --decorate --all –graph
Вывод:
* 726a721 (HEAD, master) Вывод минимума
| * 7c1af90 (origin/master, origin/HEAD) Вывод максимума |/
*f8a5119 Вывод деления
*1d2818a Вывод произведения
*9474702 git
*7a9e6b4 Вывод суммы и разности
*2d54d98 Вывод суммы
*2b37afa Ввод двух чисел
*6fdd2bc build
*c50575d code: заготовка программы
Переместим коммит Боба поверх коммита Алисы, то есть поверх origin/master git rebase origin/master
«На машине Боба» в CodeBlocks место конфликта будет отмечено прямо в коде:
<<<<<<< HEAD
if (a > b) cout << "max = " << a << '\n'; else cout << "max = " << b << '\n';
=======
if (a > b) cout << "min = " << b << '\n'; else cout << "min = " << a << '\n';
>>>>>>> Вывод минимума
Удалим метки конфликта: <<<< ..., ... >>>> и =====
Добавим файл в индекс git add main.cpp
Продолжим прерванную операцию rebase
7
git rebase –continue
Вид хранилища:
#include <iostream>
using namespace std;
int main()
{
cout << "Enter A and B: "; 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';
if (a > b) cout << "max = " << a << '\n'; else cout << "max = " << b << '\n';
if (a > b) cout << "min = " << b << '\n'; else cout << "min = " << a << '\n';
}
Отправим изменения на GitHub git push
“На машине Алисы cоздадим ветку double git branch double
Переключимся на нее git checkout double
Заменим тип переменных a и b на double
Выберем файл, изменение которого должно войти в коммит git add main.cpp
Сделаем коммит
git commit -m "новый тип"
Переключимся на ветку master git checkout master
«На машинеAlice» выполним загрузку изменений git fetch
Продвинем ветку master к скачанной версии git pull --ff-only
Просмотрим историю всех веток git log --oneline --decorate --all –graph
8
Вывод:
* bc81c6e (double) новый тип
| * 868be19 (HEAD, origin/master, master) Вывод минимума |/
*7c1af90 Вывод максимума
*f8a5119 Вывод деления
*1d2818a Вывод произведения
*9474702 git
*7a9e6b4 Вывод суммы и разности
*2d54d98 Вывод суммы
*2b37afa Ввод двух чисел
*6fdd2bc build
*c50575d code: заготовка программы
Сольем ветку double в master git merge double
В результате слияния образуется специальный новый коммит (merge commit), к которому Git предлагает написать сообщение в редакторе Просмотрим историю всех веток
git log --oneline --decorate --all –graph
Вывод:
* bc81c6e (double) новый тип
| * 868be19 (HEAD, origin/master, master) Вывод минимума |/
*7c1af90 Вывод максимума
*f8a5119 Вывод деления
*1d2818a Вывод произведения
*9474702 git
*7a9e6b4 Вывод суммы и разности
*2d54d98 Вывод суммы
*2b37afa Ввод двух чисел
*6fdd2bc build
*c50575d code: заготовка программы
9