2014-09-25 2 views
3

Я по ошибке перебросил изменения в свою удаленную мастер-ветку. Поэтому, чтобы сохранить их в безопасности, я создал ветку backup. Затем я вернул изменения, которые я сделал для удаленного мастера.Невозможно нажать на мастер после возврата

На мой местный мастер ветви я побежал:

git revert <commit_sha> 

и затем

мерзавец толчок

Теперь я закончил работу над новой отрасли (резервного копирования), и все это хорошо выглядит. Но я не могу вытолкнуть изменения с моей локальной ветви backup на удаленный мастер. Когда я запускаю git pull на моей резервной ветке, изменения, которые я сделал, теряются. Код заменяется содержимым удаленного мастера.

Есть ли способ для меня изменить мои изменения на удаленную ветку мастера, не потеряв работу?

+0

* Я проверил новую ветку и нажал туда. * Это не имеет смысла: вы можете проверить местную ветку, но вы не можете нажать на нее. Вы должны уточнить свой вопрос. – Jubobs

+0

@Jubobs Я думаю, что OP означал, что он создал «резервную» ветвь и нажал ее на свое дистанционное репо. –

+0

"* Затем я вернул нажатие, которое я сделал, чтобы освоить *" также не имеет большого смысла. Вы имеете в виду, что вы вернули последнюю фиксацию в локальном «master» или принудительно надавили на удаленную ветку 'master'? – Jubobs

ответ

1

UPDATE

Поскольку вы уже выполнили revert на локальном master отрасли и подтолкнуть его к удаленному, вы просто должны сделать все новые изменения на локальном master отрасли и забыть о backup отрасли. Имейте в виду, что ваша ветка backup по-прежнему содержит эти ошибочные коды. Если вы подтолкнете его к пульту, вы представите те коды, которые вы вернули назад.

Оригинал ответа

Если вы являетесь only person working on that remote repository, то вы должны быть в состоянии использовать

git push -f <remote> <branch> 

, чтобы заставить толкать свой новый филиал в удаленном филиале мастер.

Чтобы помочь с терминологией немного, каждый репозиторий git имеет локальную ветвь master. Следовательно, говоря , я подтолкнул свои изменения к мастеру. не имеет смысла. Мы либо push to remote (который по умолчанию обозначен как origin) или сливаются с (местным) мастером.

+0

Я не единственный человек, работающий на удаленной мастер-ветке, есть ли безопасный способ сделать это? – Whiskey

+0

@ user3393708 Если вы не единственный человек, работающий на удаленных филиалах, вы никогда не должны переписывать историю, чтобы начать (с помощью 'git revert'), если вы абсолютно не уверены, что никто не сделал« git pull » 'поскольку вы подтолкнули свои непреднамеренные изменения. –

+0

никто не делал git pull, так как я нажал непреднамеренные изменения – Whiskey

Смежные вопросы