git squash后跟push重传数据

我想git-将一个充满二进制数据的目录推送到远程服务器。 由于这可能需要数天,我在本地提交并一次推送一个文件(如果我一次提交所有内容并推送,如果传输中断,则必须从头开始重新启动,对吧?)。 当一切都被转移时,我想将所有这些提交压缩成一个。如果我在本地挤压然后推动,所有数据都会再次传输!这违背了我的战略目标。 也许我可以登录遥控器,并远程重复壁球操作,但是有更好的方法来做我想做的事情。如何通知git所有敏感数据已经在服务器上?     
已邀请:
首先,在VCS中不能最好地管理二进制文件;) 其次,如果必须,你可以在远程仓库上设置一个钩子来接收某个提交时执行压缩(比如只包含一个特殊文件的推送,验证所有以前的提交都可以被压扁)。 我不确定具体的实现,但似乎任何涉及git squash的解决方案都必须在本地和远程端进行,以确保类似的历史记录。 如果来自其他贡献者的其他提交到所述远程存储库,这将是非常安全的。然后历史记录将无法在您的本地仓库与远程端所做的事情之间正确同步...... 在这种特殊推动之后,在遥控器上进行压缩后,唯一的其他行动方案是重命名当前分支,并拉动远程分支以将所述分支的本地版本重置为远程端的内容。     
我不确定,但我认为如果已经拥有它们,git将不会传输它们。从技术上讲,提交不包含您的二进制对象,而只包含对包含对象引用的树的引用。每个对象作为一个唯一的id(SHA),因此它应该知道它已经存在或不存在。所以通常不需要再次发送二进制对象。 试试吧,这应该可以随心所欲地工作而不做任何事情。     

要回复问题请先登录注册