2013-02-07 4 views
0

Я играл вокруг с heroku и django .Чтобы разместить мое Джанго приложение на heroku, я должен был изменить много файлов (settings,urls,requirements.txt и т.д.) так много раз туда и обратно (так, чтобы все правильно). В результате в репо есть так много коммитов. Проблема заключается в том, что у меня есть стабильная версия кода (до того, как были сделаны конкретные модификации герою) на github, и теперь это выглядело бы уродливо, если я нажму на свой github все те коммиты, которые Я сделал, чтобы приложение работало на heroku.удаления совершить историю в мерзавце

Итак, я хочу, чтобы удалить все эти коммиты, и вернуться к старой стабильной version.Then я могу добавить heroku конкретных модификаций и просто один commit.The Я вижу это, я могу сделать

1.pull от github, а затем добавить heroku конкретных изменений. Затем совершите, нажмите на github, нажмите на heroku.

2.In gitk, я могу выбрать последний предварительно Heroku фиксации, щелкните правой кнопкой мыши и делать «Сброс мастер филиал в here'.Then сделать heroku изменения, связанные, фиксации, нажмите на github, нажмите на heroku.

Это правильный способ сделать это? Предположим, что pre-heroku commit был ver6, а мой текущий commit - ver10, есть 4 ненужных коммитов, которые я сделал. Мне нужно стереть их в чистоте и сделать следующее коммит Ver7.

Может кто-нибудь посоветуете?

ответ

1
  1. Сделайте git pull, чтобы получить последнюю версию в автономном режиме.
  2. git rebase --interactive ваша ветка с изменениями. Выберите squash для всего, кроме первого, чтобы сделать только одно коммит. (измените сообщение фиксации на что-то разумное)
  3. git cherry-pick, который можно зафиксировать на любой ветке развития, которую вы объедините со своей устойчивой ветвью.
  4. слияния и нажмите
2

метод очень похож на том, что в Github, которые были упомянуты here. Хотя я переписал ответ на Героку.

Для удаления фиксации истории

  • Создать новую ветку и проверку на его git checkout --orphan branch_new
  • Добавить все файлы git add -A
  • Commit git commit -m "Deleting commit history"
  • Удалить мастер филиал git branch -D master
  • Rename ветвь для управления git branch -m master
  • Принудительное обновление данных в репозитории git push -f heroku master
Смежные вопросы