гит буквально разделяет пользовательские операции и машинерию, машинерия одна и та же, а squash/rebase это просто фронтенд, при чём первый — частный случай второго
отлично, со сквашем у меня ни разу не получилось накосячить, а с ребейзом пару раз так накололся, что потом несколько дней сидел по рефам патчи разбирал чтобы восстановить код