Как восстановить локальную ветку, как это в 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^

использовать сброс git --hard