Откатить мою github-вилку на более ранний коммит - PullRequest
2 голосов
/ 13 июня 2011

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

git reset --hard HEAD~1

, но что тогда?

Как я могу затем зафиксировать эту версию обратно?Должен ли я add все текущие файлы в область подготовки, а затем commit и push?

РЕДАКТИРОВАТЬ: Или мне действительно нужна ветка?По сути, HEAD репо, который я изначально разветвлял, использует некоторые новые зависимости, на которые я не могу положиться, поэтому я хочу взять код из этого репо и перенести его на X дней в истории коммитов.Я хочу, чтобы недавно откатанный код был доступен на github, чтобы я мог включить его в качестве Gem в свое приложение на Rails 3.

Это лучше, и кто-нибудь может показать мне, как сделать , что

Ответы [ 2 ]

7 голосов
/ 13 июня 2011

После сброса вам придется принудительно нажать:

git push origin +master

Однако принудительно нажимать на предыдущий коммит не рекомендуется, если хранилище общедоступно.

Если вы не хотите сбрасывать локальный репозиторий, но хотите, чтобы публичный вернул коммит, используйте refspec, например master~1:master:

git push origin +master~1:master

Ветка с коммитами, которые не содержат зависимостей, можетбыть использованы в вашем сценарии.Например, можно считать, что название ветви: without_dependencies:

git branch without_dependencies master~1
git push origin without_dependencies

Каждый сможет увидеть эту новую ветку и работать над ней.

1 голос
/ 14 июня 2011

Другим решением будет (после локального сброса) git pull -s ours origin master, который отменит все изменения после слияния, сделав результат локальным HEAD, но оставив историю нетронутой.У вас там будет дерьмовый коммит, но вы сможете продолжить с git push и т. Д., Как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...