removing commit history in git

蓝咒 提交于 2019-12-12 02:06:05

问题


I was playing around with heroku and django .To host my django app on heroku ,I had to change many files(settings,urls,requirements.txt etc) so many times back and forth (so as to get things right) .As a result there are so many commits in the repo.Problem is that I have the stable version of the code(before the heroku specific modifications were done) on github and now it would look ugly if I push to my github all those commits which I did to get app working on heroku .

So,I want to remove all those commits,and get back to the older stable version.Then I can add the heroku specific modifications and just do one commit.The way I see it ,I can do

1.pull from github and then add heroku specific changes.Then commit,push to github,push to heroku.

2.In gitk ,I can select the last pre-heroku commit, right click and do 'Reset master branch to here'.Then make heroku related changes,commit ,push to github,push to heroku.

Which is the correct way to do this?Suppose the pre-heroku commit was ver6, and my current commit is ver10,there are 4 unnecessary commits which I made.I need to wipe them clean ,and make the next commit ver7.

Can someone please advise?


回答1:


  1. Do a git pull to get the latest version offline.
  2. git rebase --interactive your branch with modifications. Select squash for everything except the first one to make just one commit. (change the commit message to something sensible)
  3. git cherry-pick that one commit on whatever development branch you will merge with your stable branch.
  4. merge and push



回答2:


Method is pretty similar to that in Github which had been mentioned here. Though I will rewrite the answer for Heroku.

In order to delete commit history

  • Create a new branch and checkout to it git checkout --orphan branch_new
  • Add all files git add -A
  • Commit git commit -m "Deleting commit history"
  • Delete master branch git branch -D master
  • Rename the branch to master git branch -m master
  • Force push the update to repository git push -f heroku master


来源:https://stackoverflow.com/questions/14755940/removing-commit-history-in-git

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!