Итак, у меня есть 3 ветви: master
, testing
и dev
. все они отслеживают соответствующие ветви на remotes/origin
my git branch -a
показывает следующее:
dev
master
testing
remotes/origin/master
remotes/origin/testing
remotes/origin/dev
Когда я запускаю тестирование, я объединяю dev
в testing
, затем, когда я выпускаю приложение, я объединяю testing
в master
, так что master
фактически является моей веткой релиза.
Некоторое время это работало хорошо, у меня было несколько икот, и мне пришлось сделать несколько силовых ударов до origin
. Ничего страшного, маленькая команда разработчиков и все такое. Недавно я сделал релиз, поэтому все мои ветки в настоящее время эквивалентны (master
== testing
== dev
== origin/master
== origin/testing
== origin/dev
)
Сегодня другой разработчик и я заметили, что когда мы сделали git checkout master
, тонна неотслеживаемых / перемещенных / удаленных / переименованных файлов обнаружилась при запуске git status
. Это странно, потому что помните, что все ветви указывают на один и тот же коммит. Как это может произойти?
Единственный способ исправить это сделать что-то вроде git reset --hard origin/master
, тогда я могу переключиться на testing
или dev
. Странно то, что этого не происходит при переключении между testing
и dev
, просто когда я переключаюсь на master
Пытаясь отладить это, я сделал новый клон origin
в новый каталог. Новая проверка имеет ту же проблему, что и наши проверки. Есть идеи?