我对github很新。我上传了我的一个项目,不小心我也提交了所有的二进制文件。我使用github的网站来管理我的项目并删除二进制文件。问题是每次我删除一个文件都算作提交。
通常情况下这不是问题,但我喜欢那种喜欢看统计数据并了解它们如何发展的人。
现在提交统计信息和其他与提交计数相关的统计信息都搞砸了,看起来项目正在快速下降,因为几百个手动删除的二进制文件都被视为单个提交与我的2-8个常规提交现在一天。
有没有什么好方法可以将已提交的提交捆绑到单个提交中,或者将它们从提交统计信息中删除?
我知道我可以删除项目并重新上传,但之后我会丢失文件的历史记录。
答案 0 :(得分:3)
这个问题有很多答案。其中之一是
git rebase -i HEAD~n
// n will define the range of commits that you want to consider
// You can also use a SHA1 hash instead of HEAD~n
此交互式rebase将显示提交列表。如果你想将它们全部压缩在一起,你只需用壁球为每个提交(第一个除外)加前缀。这将在命令行中出现的交互式rebase指令中进行说明。
因此,如果你设置n = 4,你会看到:
pick 111111 // Random hashes
pick 222222
pick 333333
pick 444444
只需将其替换为
pick 111111
squash 222222
squash 333333
squash 444444
最终,这将导致包含这4个提交的代码更改的单个提交。请注意,这将重写 git commit history。这4个提交将消失,并将被新的聚合提交替换。
虽然不是最简单的解决方案,但它确实提供了更大的灵活性。交互式变基也允许您重命名提交消息,重新排序提交等。如果您想要将2个提交压缩到一个提交中,并将其他2个提交压缩到一个提交中,它还会允许您更细化。示例:
pick 111111
squash 222222
pick 333333
squash 444444
有关详细信息https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase-i/