Как вернуть локальную ветку обратно в Github? - PullRequest
16 голосов
/ 27 января 2010

Я немного поработал против неправильной ветки в моем локальном репозитории. Я сделал 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.0b, но я бы хотел вернуть разработку обратно к тому, что происходит в моем репозитории github Какой лучший способ сделать это?

Ответы [ 4 ]

66 голосов
/ 30 мая 2013

Еще быстрее вы можете просто сбросить локальную ветку на конкретный пульт:

git reset --hard remote/branch

Где "удаленный" имя вашего пульта
Где "ветка", название удаленной ветки

15 голосов
/ 27 января 2010

Просто чтобы убедиться, что я понимаю положение вещей: вы создали ветку релиза, но не проверили ее, поэтому ваши коммиты находятся в ветке разработки в вашем локальном репозитории. Вы сказали, что объединили изменения в ветке release-v0.2.0b.

Если это так, и в ветке разработки нет других коммитов, которые вам нужно сохранить, просто удалите локальную копию ветки разработки и проверьте ее снова из источника.

Во-первых, проверьте, какие у вас есть филиалы и в каком:

git branch -av

Затем переключитесь в ветку разработки, чтобы удалить ее:

git checkout origin/development
git branch -D development

Это фактически не оставляет вас ни на одной ветке, но вы вернетесь на ветку, когда снова проверите ее из источника:

git checkout origin/development -b development

Я предлагаю проверить происхождение / разработку, чтобы избежать ненужного перетаскивания файлов в вашем снимке.

2 голосов
/ 27 января 2010

Вернитесь в локальную ветку релиза, в которую вы хотите внести изменения, Потяните туда из 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^
0 голосов
/ 27 января 2010

Использование git reset --hard

...