
Откуда взялся Octocat
Операция git merge
используется для слияния веток. Но слияние может происходить по-разному. Есть дефолтный алгоритм слияния, который используется, если выполнить команду git merge
(также мердж неявно происходит при git pull
). Для слияния двух веток в версиях git с v0.99.9k до v2.33.0 использовался алгоритм recursive
(наверняка вы видели в консоли сообщение «Merge made by the ‘recursive’ strategy» — это вот оно).
В более новых версиях дефолтный алгоритм recursive
был заменён на ort
(Ostensibly Recursive’s Twin — «Как будто бы близнец Recursive», видимо разработчики посчитали что называть его recursive-v2
как-то не оч). У него тот же интерфейс и настройки (работает для слияния двух веток), но он работает побыстрее в больших репозиториях (особенно при мерджах, где было много переименований) и учитывает граничные случаи, которые в recursive
решались неоптимально.
Но помимо двухветочных алгоритмов есть ещё и специальная стратегия для слияния более чем двух веток. Например, когда мы сливаем несолько веток разработки в одну для тестирования:
git checkout -b testinggit merge feature/one feature/two feature/three
В этом случае применится алгоритм слияния octopus
. И буквально три ветки будет слито в одну (в целом, количество веток может быть любым, но лучше не превращать слияние «осьминога» в слияние «ктулху»).
*-. dbc6a8b (HEAD -> testing) Merge branches 'feature/one', 'feature/two' and 'feature/three' into testing|\ \| | * 0260176 (feature/three) add test-3.txt| * | abc9e86 (feature/two) add test-2.txt| |/* / 77e0aa8 (feature/one) add test-1.txt|/* 82acd11 (master) init
Также стратегию можно передавать явно в параметре вот так: git merge -s recursive
.
Так вот, давным-давно, когда начинался GitHub, его основатели захотели создать забавную страницу ошибки и купили на стоке ту самую картинку котоосьминога, которая называлась «Octopuss» у дизайнера Simon Oxley.
Позже Octopuss стал более «корпоративным» Octocat, GitHub нанял дизайнера-разработчика Cameron McEfee, чтобы сделать из одной картинки целую мерч-индустрию и, что называется, завертелось.
Забавный факт: на двумерных картинках у октокота всегда видны только 5 лап (по разным версиям одна из них — хвост). И когда появилась задача сделать трёхмерную фигурку, то встал вопрос сколько всё таки у него будет ног: 4 ноги и хвост или же 8 щупалец (3 из которых не видны на картинке). В итоге решили, что у фигурки будет 4 ноги и один хвост. Впрочем, потом появились анимации, где у октокота много щупалец.