Перебазирование или слияние?

Теперь, когда вы увидели перебазирование и слияние в действии, вы можете задаться вопросом, что из них лучше. Прежде чем ответить на этот вопрос, давайте немного отойдем назад и поговорим о том, что означает история коммитов.

Одна из точек зрения заключается в том, что история коммитов в вашем репозитории это запись того, что на самом деле произошло. Это исторический документ, ценный сам по себе, и его нельзя подделывать. С этой точки зрения изменение истории коммитов почти кощунственно, вы лжете о том, что на самом деле произошло. Но что, если произошла путаница в коммитах слияния? Если это случается, то репозиторий должен сохранить это для потомков.

Противоположная точка зрения заключается в том, что история коммитов это история того, как был сделан ваш проект. Вы не опубликовали бы первый черновик руководства, если руководство о том, как поддерживать ваше программное обеспечение, нуждается в тщательном редактировании. С этой точки зрения разные инструменты Git'а нужны, чтобы рассказать историю наилучшим для будущих читателей образом.

Теперь к вопросу о том, что лучше, слияние или перемещение. Надеюсь, вы увидели, что это не так просто. Git это мощный инструмент, позволяющий сделать множество вещей и в вашей истории, и с вашей историей. Однако каждая команда разработчиков и каждый проект индивидуальны. Теперь, когда вы знаете, как работают оба эти приёма, выбор, какой из них будет лучше в вашей ситуации, находится за вами.

Если говорить абстрактно, то стоит взять лучшее от обоих миров. Использовать перебазирование для локальных изменений, ещё не отправленных на удалённый сервер, чтобы навести порядок в вашей истории. Но никогда не перебазировать ничего, что уже было отправлено куда-то.