在尝试优化GitHub托管的存储库时,我需要重写吗?

时间:2018-03-09 17:03:38

标签: git-lfs

背景

我们有一个存储库大小相当大的GitHub存储库,因为我们在历史记录中有几个20mb以上的框架二进制文件。这会严重影响CI时间,因为我们正在使用托管CI,这会为每个作业获取存储库的新克隆。

为了改善这一点,我想重写历史记录并将大文件移动到Git LFS。

问题

我试图将git lfs migrate import用于此目的。

作为准备步骤,我已在本地跟踪所有远程分支机构,因此--everything确实会重写所有内容,而团队中的其他开发人员也不必注意它,但是可以得到一个新的克隆。

当我重写GitHub托管的存储库的历史时,我是否需要重写并强制推送GitHub似乎用来跟踪拉取请求(refs/pull/*)的引用? git lfs migrate import并未包括那些我认为的内容。

1 个答案:

答案 0 :(得分:2)

  

我是否需要重写并强制推送GitHub似乎用来跟踪拉取请求(refs / pull / *)的引用?

如果您确实需要,这将是一个问题,因为这些引用是只读的according to Github's documentation

  

远程refs / pull / namespace是只读的。如果你试图在那里推送任何提交,你会看到这个错误:

     

! [远程拒绝] HEAD - > refs / pull / 1 / head(拒绝更新隐藏的参考号)   错误:未能将某些引用推送到' git@github.local:USERNAME / REPOSITORY.git'

幸运的是,这不是一个问题,因为Pull Request要求合并的原始分支的任何推送都将update the Pull Request

  

一旦您创建了拉取请求,您就可以从主题分支推送提交,将其添加到现有的拉取请求中。这些提交将在您的拉取请求中按时间顺序显示,并且更改将在"文件已更改"中显示。标签

虽然该文档中没有明确说明,但包括强制推送到分支--Github将检测到分支已指向新提交,并使用新版本更新Pull Request。