Ну почему сразу «хаки», вполне себе рабочий вариант :) Много есть случаев, когда именно такой подход работает, а делать из гита монстра, который умет прям всё-всё-всё глупо и нет смысла. Linux-way, все дела.
Проблема возникает в тот самый момент, когда нужно полноценно работать во временем, в самом простом случае и в 99% приложений все эти сложности не нужны. Если нужны прям конкретные примеры — то один из сценариев описан тут: habrahabr.ru/company/mailru/blog/242645 (Cmf+F «Работаем со временем»), остальные — в статье по ссылке.
https://habr.com/ru/post/143102/ :)
По поводу утилит есть ещё чумовая git up (и её же вариант на питоне, который лично я предпочитаю).