我想知道Git仓库能处理的提交数量是否有上限。
目前我正在进行一个单人项目,我在本地编码,使用Git提交/推送更改,然后在我的开发服务器上拉取这些更改。
我将它视为比在本地工作并通过FTP上传更改更容易的替代方式...幸运或不幸的是,这是如此简单的工作流程,以至于在编码时我会经历许多次编辑/提交/推送/拉取/浏览器刷新循环。
我想知道这样做是否会在某个时候给我带来麻烦。 如果可能成为问题,我想知道如何避免这种麻烦...似乎rebase可能是解决方法,特别是因为我不必担心冲突分支等问题。
我想知道Git仓库能处理的提交数量是否有上限。
目前我正在进行一个单人项目,我在本地编码,使用Git提交/推送更改,然后在我的开发服务器上拉取这些更改。
我将它视为比在本地工作并通过FTP上传更改更容易的替代方式...幸运或不幸的是,这是如此简单的工作流程,以至于在编码时我会经历许多次编辑/提交/推送/拉取/浏览器刷新循环。
我想知道这样做是否会在某个时候给我带来麻烦。 如果可能成为问题,我想知道如何避免这种麻烦...似乎rebase可能是解决方法,特别是因为我不必担心冲突分支等问题。
“上限”可能是SHA1碰撞发生的点,但由于SHA码有40个十六进制数字(16^40 ≈ 1.4x10^48种可能性),其概率非常接近于零,甚至不值一提。因此,在未来数千年内,您几乎没有任何问题的可能性几乎为零。
夸张的例子(仅供娱乐):每分钟提交1个更改(只更改一个文件->使用三个新的SHA(文件、提交、树)=每分钟使用3个新SHA =……=每年使用1.6M SHA =每千年16亿SHA =每千年使用1x10^-37% ……(如果每分钟有1000个文件/提交,则仍为3.6x10^-35%)。
话虽如此,如果您想清理历史记录,使用rebase压缩它们可能是最好的选择。只要确保您已公开共享了存储库,就可以理解其含义。
在重新设定基础后,您可能还需要进行垃圾回收以释放一些空间(但首先确保重新设置基础正确,并且您可能需要告诉它收集所有东西,否则默认情况下将不会收集任何两周内未使用的内容)。
long amount=Count(GetCommitsWithCertainProperties(x,y))
的地方,如果提交超过2^32个,则操作会失败? - anion我认为git能够处理的提交数量没有明显的限制,只取决于你个人的消化能力。在大型项目和多个开发者的情况下,你会看到比自己生成的更多的活动。
如果你愿意,可以保留一个次要分支,每周合并一次,但是git不会关心你有多少提交。只要你能理解自己在做什么,就可以尽情提交。你总是可以回溯几个提交或使用类似bisect的工具来解决历史问题。