Git, как мне сделать git reset --hard для работы? - PullRequest
0 голосов
/ 04 июня 2018

Я сделал несколько коммитов на ветку, но хочу вернуться к конкретному коммиту.

Я использую git log, чтобы найти идентификатор фиксации, затем я использую git reset --hard <commit id>, но ничего не происходит.Затем, когда я пытаюсь подняться на Github, я получаю сообщение non-fast-forward.

Кто-нибудь знает, что я должен делать?

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Что касается вашего вопроса и комментариев, я понимаю, что вы делаете три коммита на ветке и толкаете эту ветку на удаленном.и теперь вы хотите удалить эти 3 коммита из удаленной и локальной ветки.

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

Я предполагаю, что ваше имя ветви xyz замените xyz на имя вашего филиала.

Выполните следующие шаги:

  1. get fetch origin # для извлечения удаленной истории
  2. git reset --hard origin/xyz # синхронизация xyz с удаленным
  3. git reset --hard HEAD~3 # удалить 3 верхних коммита
  4. git push origin xyz --force-with-lease # протолкнуть ветку на пульт.
0 голосов
/ 04 июня 2018

После того, как вы выполните полный сброс, ваше рабочее дерево и индекс теперь находятся в состоянии коммита, к которому вы выполнили сброс.В следующий раз, когда вы создадите любой коммит, у вас будет новая, расходящаяся история для вашего хранилища (и ветки, над которой вы работали).

Чтобы решить эту проблему, используйте --force при нажатии на Github;это будет означать, что вы признаете, что потеряете историю, принудительно отправив свою новую, переписанную историю в хранилище.

Предостережения: В целом, --force опасно, особенно если вы не уверены в том, как вы получилив состоянии нуждаться в этом.Как правило, нет способа легко отменить ошибочный принудительный толчок.Тем не менее, если коммиты, которые вы пытаетесь уничтожить, содержали что-то чувствительное, например, ключи API, пароли или тому подобное, я не уверен, что это будет гарантировать, что коммиты будут безвозвратно уничтожены.

...