删除git中的提交历史记录

时间:2013-02-07 16:25:04

标签: git heroku commit

我正在玩herokudjango。要在heroku上托管我的django应用,我必须多次更改许多文件(settings,urls,requirements.txt等)因此,在repo中有很多提交。问题是我在github上拥有稳定版本的代码(在完成heroku特定修改之前)并且现在,如果我向github推送heroku我所做的所有提交以使应用程序在heroku上工作,那将会很难看。

所以,我想删除所有这些提交,然后回到较旧的稳定版本。然后我可以添加github特定的修改,只做一次提交。我看到它的方式,我可以做< / p>

1.pull从heroku开始,然后添加github具体更改。然后提交,请转到heroku,然后转到gitk

2.在heroku中,我可以选择最后一个pre-heroku提交,右键单击并将'master master branch重置为here'。然后进行github相关更改,提交,推送到{{ 1}},推送到heroku

这是正确的方法吗?假设pre-heroku提交是ver6,我当前的提交是ver10,我做了4次不必要的提交。我需要清理它们,然后进行下一次提交ver7

有人可以提出建议吗?

2 个答案:

答案 0 :(得分:2)

方法非常类似于Github中提到的here。虽然我会改写Heroku的答案。

要删除提交历史记录

  • 创建一个新分支并向其结帐git checkout --orphan branch_new
  • 添加所有文件git add -A
  • 提交git commit -m "Deleting commit history"
  • 删除主分支git branch -D master
  • 将分支重命名为主git branch -m master
  • 强制将更新推送到存储库git push -f heroku master

答案 1 :(得分:1)

  1. 执行git pull以使最新版本脱机。
  2. git rebase --interactive您的分支经过修改。选择除第一个之外的所有东西的壁球只进行一次提交。 (将提交消息更改为合理的内容)
  3. git cherry-pick一个提交你将与你的稳定分支合并的任何开发分支。
  4. 合并并推送