Как обеспечить консистентность базы данных при переходе между ветками git?
Мне кажется, проще всего вам использовать docker/vagrant/и/п, т.е. виртуальное окружение.
Вы вытягиваете ветку, стартуете под нее виртуалку, там разворачивается база, сидится, накатываются нужные миграции и вы спокойно работаете дальше. Примерно так.
Советую глянуть в это сторону.
В противном случае, вы либо будете тратить много времени на приведение БД к нужному виду, либо наплодите на dev-машине кучу баз под соответствующие ветки - что тоже так себе решение.
В Entity Framework можно управлять миграциями и как следствие - версионировать базу данных.
Правда, прикрутить её к уже готовому проекту - отдельная песня.