Перед началом выполнения работ обязательно вызвать скрипт подготовки веток prepare.sh
Репозиторий содержит некоторое количество кода разработки прототипа учебной системы запуска космического аппарата (код математики не претендует на физичность). Вы выступаете в роли старшего разработчика, который должен исправить некоторые огрехи своих студентов-стажёров (сами они поправить не могут - готовятся к сессии) и передать готовую к слиянию ветку самому Главному разработчику.
Просматривая очередную ветку calculate-accident-fall-point, в истории коммитов Вы натыкаетесь на секретные координаты, которые были случайно оставлены разработчиком - их нужно удалить, оставив остальной комментарий и все остальные коммиты без изменений (возможно, с точностью до хеша коммита). Секретные данные содержат в себе широту и долготу - необходимо удалить всю строчку, которая их содержит
Один из разработчиков перед отпуском начал выполнять задачу сверхточного расчёта орбиты спутника в ветке precise-satellite-orbit, однако не успел до вылета в тёплые края и последними 2 коммитами испортил даже свой уже почти законченный алгоритм с базовой точностью. Ваша задача сделать новую ветку simple-satellite-orbit от последнего коммита, где проходят тесты (это можно увидеть по комментариям) и закоммитить туда добавление одной строки в метод simple-satellite-orbit, тем самым обеспечив хотя бы базовый корректный расчёт
let ORBIT=$ORBIT+1
Просматривая ветку fuel-estimation одного из разработчиков, Вы обнаружили добавленный по ошибке в последнем коммите файл ugly-file. Вам нужно изменить последний коммит так, чтобы этого файла больше не было и авторство коммита осталось прежним, число коммитов не должно поменяться
В ветке fall-point-calculation история коммитов содержит плоды экспериментов разработчика, которые не должны засорить историю при слиянии с одной стороны, а с другой - есть 2 коммита, логика в которых важна и нуждается в сохранении. Вам нужно избавиться от коммитов, содержащих комментарий Experiment: ... так, чтобы их не было в истории, но сам вклад в исходный код остался
Один из разработчиков исправил очень важную ошибку в коде (ветка fix-flight-time, коммит содержащий "Relativistic correction fixed") и это исправление срочно должно попасть в ветку flight-time-estimation без каких-то коммитов до и после, но с сохранением оригинального авторства коммита
Последние 2 коммита в ветке fix-flight-time по Вашему подозрению делают хуже, чем было, однако полностью удалять их из истории нельзя - разработчик после выхода из отпуска может быть доведёт "до ума" начатое. А сейчас Вам нужно откатить изменения последних 2 коммитов так, чтобы их код отсутствовал в голове ветки. Должо появиться не более 1 нового коммита
У вас есть несколько веток с реализованной функциональностью:
- fuel-estimation
- flight-time-estimation
- simple-satellite-orbit
- calculate-accident-fall-point
Вам необходимо слить в ветку dev всю значимую функциональность с сохранением истории коммитов и отправить её на Pull Request в master-ветку. Обратить внимание, что при создании PR начнут прохождение автоматизированные тесты. После прохождения всех тестов можно назначить проверяющего rokymiel и запросить review
Цели можно достичь различными способами, в том числе таким набором команд git:
- add
- rebase
- squash
- commit [amend]
- push
- pull
- cherry-pick
- merge
- revert