GitHub:Bundle已经将提交提交到单个提交中

时间:2015-02-19 08:08:48

标签: git github commit

我对github很新。我上传了我的一个项目,不小心我也提交了所有的二进制文件。我使用github的网站来管理我的项目并删除二进制文件。问题是每次我删除一个文件都算作提交。

通常情况下这不是问题,但我喜欢那种喜欢看统计数据并了解它们如何发展的人。

现在提交统计信息和其他与提交计数相关的统计信息都搞砸了,看起来项目正在快速下降,因为几百个手动删除的二进制文件都被视为单个提交与我的2-8个常规提交现在一天。

有没有什么好方法可以将已提交的提交捆绑到单个提交中,或者将它们从提交统计信息中删除?

我知道我可以删除项目并重新上传,但之后我会丢失文件的历史记录。

1 个答案:

答案 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/