如何将所有提交历史压缩成一个提交?

6

所以我使用了以下内容:

git checkout --orphan newBranch
git add -A  # Add all files and commit them
git commit
git branch -D master  # Deletes the master branch
git branch -m master  # Rename the current branch to master

这对于Gitrepo提交历史非常有效,但是当我使用gitk --all时,仍然会看到所有先前的提交。是否也可能将所有这些提交合并为一个?

谢谢!


2
只需删除 .git 目录并初始化一个新的仓库。 - Damien Roche
我该如何删除 .git 目录?谢谢。 - user3399101
3
rm -rf .git 应该就可以了。更多信息请参考这里的答案:https://dev59.com/Z3I-5IYBdhLWcg3wHUnP - Damien Roche
2
你熟悉git rebase吗?这个操作不会像删除仓库那样具有破坏性。 - jakenberg
1
当我使用gitk --all时--这不公平。如果在强制推送和替换远程“master”之前进行检查,那么是的,您仍将拥有对上次同步远程内容的本地引用。 - user743382
1个回答

3
使用git rebase -i --root命令,然后将除第一行以外的所有行的前缀从pick更改为squash。 所有提交将合并为一个单独的提交。 当您推送更改时,您需要强制推送,否则它不会推送您的更改。

1
在这种情况下,“--root”开关是用来做什么的? - zkent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接