如何从一开始就重新提交所有提交

plu*_*us- 41 git github

所以我从svn(code.google.com)迁移到git(github).

我从svn repo导入了我的项目,并且它一路导入了所有提交历史记录.我并不为这些评论感到自豪,因为这是我的第一个项目,并不是非常严肃.

我想将所有内容重新组合成一个"初始导入"提交.

我把所有东西都拉到了我的电脑上,而我正试图这样做.但我发现的只是: git rebase -i master但它只会改变新的修改和提交.

如何使用rebase清除所有历史记录中的github存储库?

Tob*_*s J 150

git rebase -i --root 将从一开始就启动所有提交的交互式rebase.

从那里,您可以将所有提交压缩为一个和/或执行其他编辑.


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 将您的初始提交更改为指向您的仓库的当前状态.


Abi*_*ern 5

找到你想要开始压缩的提交的哈希值,abcd12然后专门针对该哈希值进行rebase.

git rebase -i abcd12
Run Code Online (Sandbox Code Playgroud)

您正在使用masterrebase,它针对主分支的尖端执行rebase.