Аналогичная ситуация и решение.
Может кому-то, кто придет сюда из поиска это будет полезно.
Честно говоря разбираться в дебрях терминов «застешить», «unstage», и осваивать приемы прыжков через коммиты не хотелось.
Действительно когда делаешь
git checkout идентификатор_коммита
дальнейшие коммиты, как оказалось лепятся к нему вне какой либо ветки, даже если вы сделали checkout на самый свой последний коммит (я например ожидал что вернувшись на него, все действительно вернется на круги своя).
Эти коммиты висят как-бы в неименованой новой ветке, в своего рода межветочном пространстве. И само собой все попытки запушить изменения командой
git push origin ваша_обычная_ветка
не дадут ожидаемого вами результата. С вашей веткой все впорядке, и с изменениями тоже, просто все те коммиты которые сделаны после ваших манипуляций с откатами надо влить в вашу основную ветку.
Самый понятный и простой способ, проименовать текущее состояние (текущую цепочку коммитов) новой веткой.
git checkout -b tempname
Затем вернуться в вашу родную ветку
git checkout ваша_обычная_ветка
и слить изменения из созданной ветки
git merge tempname
(так как в гите все с чем вы работаете это изменения, то ветка tempname - это и есть только лишь ваши изменения, отсюда интуитивная понятность метода).
остается только удалить временную ветку, дабы не засорять реп.
git branch -d tempname
И можно пушить.
Решил первый раз вернуться к определенному месту и тут такое. Почему так все усложнено?