我有一个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的所有提交。
提前致谢。
答案 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?