Как восстановить локальную ветку, как это в GitHub?
Я сделал немного разработки против неправильной ветви в моем локальном репозитории. Я сделал git branch
без следующего выполнения git checkout
. Команды выглядят примерно так:
#On branch development
git branch release-v0.2.0b
# changes and several commits
git push origin release-v0.2.0b
и тогда я понял, что работаю не на той ветке. Мое РЕПО github находится в надлежащем состоянии, но мое местное РЕПО-нет. Я объединил изменения от разработки в release-v0.2.0 b, но я хотел бы сбросить разработку до того, как она находится в моем репозитории github. Каков наилучший путь? об этом?
4 ответов
просто чтобы убедиться, что я понимаю состояние вещей: вы создали ветку выпуска, но не проверили ее, поэтому ваши коммиты находятся в ветке разработки в вашем локальном репозитории. Вы сказали, что объединили изменения в release-v0.2.0 b филиал.
Если это так, и нет никаких других фиксаций в ветви разработки, которую вам нужно сохранить, просто удалите локальную копию ветви разработки и проверьте ее снова из origin.
во-первых, убедитесь, что ветви, которые у вас есть и на которых вы находитесь:
git branch -av
затем переключитесь с ветки разработки, чтобы удалить ее:
git checkout origin/development
git branch -D development
это фактически не оставляет вас на ветке, но вы вернетесь на ветку, когда снова проверите ее из источника:
git checkout origin/development -b development
Я предлагаю проверить origin/development, чтобы избежать ненужного сбивания файлов в вашем снимке.
еще быстрее вы можете просто сбросить локальную ветвь на определенный пульт:
git reset --hard remote/branch
где "удаленный" имя вашего удаленного
Где "ветвь" название удаленной ветви
вернитесь в локальную ветвь выпуска, в которую вы хотите внести изменения, потяните туда из github.
git checkout local-branch-that-refers-public-v0.2.0b
git pull origin release-v0.2.0b
затем сбросьте указатель ветви локальной ветви, которую вы зафиксировали для более ранней фиксации, к которой хотите вернуться.
git checkout release-v0.2.0b
git reset HEAD^