2012-05-30 5 views
11

Можно создать дубликат:
How can I remove a commit on github?
How to delete a 'git commit'Удалить коммит из GitHub

Так что я пытаюсь удалить коммита из GitHub.

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

Так на основе вопросов здесь, я сделал

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

Теперь она ушла из GitHub, а также в журнале мерзавец.

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

git add <file I changed> 
git commit 
git log 

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

git push 

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

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

ответ

11

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

git rebase -i HEAD~2 

git push origin +master 
+0

Спасибо! Кажется, это сработало. Однако, копаясь в каталоге .git, я обнаружил кучу файлов в журнале со ссылками на коммит, который я хочу удалить. Я также отредактировал эти файлы, чтобы удалить ссылку, прежде чем делать git push origin + master. – Jistanidiot

+2

@Jistanidiot, скорее всего, вы возились с хранилищем 'git reflog'. Не слишком яркая идея на самом деле, поскольку 'git reflog' имеет свои собственные способы управления своим хранилищем, и у вас были изменения, чтобы что-то сломать. – kostix

+2

Спасибо! Сначала я сделал «git reset -hard », а затем использовал ваши команды, и это сработало как шарм! –

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