所以我从svn(code.google.com)迁移到git(github).
我从svn repo导入了我的项目,并且它一路导入了所有提交历史记录.我并不为这些评论感到自豪,因为这是我的第一个项目,并不是非常严肃.
我想将所有内容重新组合成一个"初始导入"提交.
我把所有东西都拉到了我的电脑上,而我正试图这样做.但我发现的只是:
git rebase -i master
但它只会改变新的修改和提交.
如何使用rebase清除所有历史记录中的github存储库?
Cas*_*bel 16
如果你愿意,你可以改变并压缩所有东西(初始提交除外),但为什么要这么麻烦?只需删除.git目录,运行git init
以重新创建它,git add
所有内容,并git commit
进行新的初始提交.
Kev*_*ger 11
Jefromi的答案可行,但如果您想保留现有的repo配置,或者为了以防万一,请保留提交内容,您可以执行以下操作:
git checkout master
git branch backup
如果您想保留历史记录,请选择在此处留下另一个分支.
git reset --soft $SHA_OF_INIT_COMMIT
这将更新HEAD指向的内容,但保留索引和工作目录的当前状态.您可以使用SHA获取git log --pretty=format:%h --reverse | head -n 1
,然后执行此操作git reset --soft $(git log --pretty=format:%h --reverse | head -n 1)
git commit --amend
将您的初始提交更改为指向您的仓库的当前状态.
找到你想要开始压缩的提交的哈希值,abcd12
然后专门针对该哈希值进行rebase.
git rebase -i abcd12
Run Code Online (Sandbox Code Playgroud)
您正在使用master
rebase,它针对主分支的尖端执行rebase.