Если вы работаете в команде, это предпочтительнее, и вы всегда должны сохранять все миграции.
Предположим, вы осуществили миграцию sh на Git, а позже обнаружили, что она нуждается в некоторых изменениях. Таким образом, вы отменяете и переносите миграцию, создаете новую и получаете sh новые изменения. Это хорошо работает на вашей машине. Но если каким-то образом ваши предыдущие неудачные миграции выполняются кем-либо из вашего товарища по команде, и он извлекает новый код, ему придется запускать новые миграции, что приведет к поломке приложений на компьютере ваших товарищей по команде.
Но если вы работаете в одиночку и хотите немного привести себя в порядок, тогда вы можете аккуратно удалить миграции после их возврата (не рекомендуется).