更改git初始提交以杀死历史记录

时间:2014-02-17 22:23:38

标签: git

我有一个repo,我希望在一次提交之前删除所有提交,目的是更改repo的初始提交。

我创建了一个分支,其最后一次提交作为我想要的提交作为新根:

git checkout -b newroot SHA

然后我为初始提交创建了一个新提交:

git checkout -b initial $(echo "Kill history" | git commit-tree $(git write-tree))

然后我想在提交SHA的初始起点之前重新设置master,所以我做了:

git rebase --onto initial newroot master

但是,这种情况并没有成功。应用一些提交后我会遇到冲突。也许我不理解某些东西,但我看到它的方式,我不应该得到任何冲突,因为我只想在新的“假”初始提交之上应用master的所有提交。

提前致谢。

1 个答案:

答案 0 :(得分:0)

你需要一个孤儿

git checkout --orphan newroot master~10
git commit -m 'Kill history'
git cherry-pick master~10..master
git branch -d master

In git, is there a simple way of introducing an unrelated branch to a repository?