#git #history #egit
#git #история #egit
Вопрос:
Я совершил что-то, используя неправильные учетные данные, есть ли способ удалить этот коммит из истории git. Я использую плагин egit в eclipse.
Ответ №1:
Технически да, но не уверен, хотите ли вы это сделать. Обдумайте плюсы и минусы, особенно большой минус изменения отправленной истории:
Еще не нажата / только локальное изменение
На консоли просто выполните одно из следующих действий:
-
git rebase -i <commit before the one you want to remove>
: в текстовом редакторе откроется файл со списком коммитов. Удалите коммит, от которого вы хотите избавиться. Сохраните и выйдите. Git перестроит историю (и, возможно, представит некоторые конфликты) без этого коммита. -
git reset --soft <the commit you want to remove>
: используйте эту опцию, если вы не возражаете изменить остальную часть истории и зафиксировать ее заново. Таким образом, у вас не будет конфликтов, но это выполнимо, только если это короткая история.
Изменение удаленной ветки
Ну, любое из решений, перечисленных ранее, НО когда вы нажимаете, вам нужно указать -f
опцию, и это ОЧЕНЬ ПЛОХО: nucleardawn : ! Вы будете изменять историю коммитов, на которую могут полагаться другие, и это может полностью испортить их работу.
Делайте это, только если вы уверены, что никто не извлекал удаленную ветку какое-то время или если вы работаете в одиночку.
Надеюсь, это поможет.