Удалить фиксацию из github

Возможный дубликат:
Как я могу удалить коммит на github?
Как удалить коммит git '

Итак, я пытаюсь удалить коммит из github.

Это 3 коммита назад, и я в порядке, если все изменения будут потеряны.

Итак, основываясь на вопросах отсюда, я сделал

git reset --hard <sha-commit-name-to-go-back-to>
git push -f origin HEAD^:master

Теперь его нет как в github, так и в журнале git.

Затем я переделал свои изменения и сделал

git add <file I changed>
git commit
git log

Все выглядит нормально. От старых коммитов не осталось и следа. Итак, я наконец сделал:

git push

Теперь у github есть те три коммита, которые я удалил.

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


person Jistanidiot    schedule 30.05.2012    source источник


Ответы (1)


Перед применением новых изменений используйте git rebase process. После перебазирования добавьте новые изменения и зафиксируйте.

git rebase -i HEAD~2

git push origin +master
person Aneesh Narayanan    schedule 30.05.2012
comment
Спасибо! Кажется, это сработало. Однако, покопавшись в каталоге .git, я нашел в журнале кучу файлов со ссылками на коммит, который я хочу удалить. Я также отредактировал эти файлы, чтобы удалить ссылку перед выполнением git push origin + master. - person Jistanidiot; 30.05.2012
comment
@Jistanidiot, скорее всего, вы возились с хранилищем git reflog. На самом деле это не слишком яркая идея, поскольку у git reflog есть свои способы манипулировать своим хранилищем, и у вас были изменения, чтобы что-то сломать. - person kostix; 30.05.2012
comment
Спасибо! Сначала я сделал git reset --hard <commit_number>, затем использовал ваши команды, и это сработало как шарм! - person Kenny Cason; 14.05.2013
comment
Я сделал git reset --hard <sha-commit-name-to-go-back-to>, git push -f origin HEAD^:master, а затем git rebase -i HEAD~2, и редактор nano открывает файл: File: /var/www/html/site-name/.git/rebase-merge/git-rebase-todo с параметрами pick, reword, edit и т. Д. Я не знаю, что делать ... - person user1063287; 11.07.2016