【问题标题】:how can i push a large codebase on github?如何在 github 上推送大型代码库?
【发布时间】:2020-07-17 06:09:44
【问题描述】:

我有一个 ~300Mb 的 laravel 项目。 我没有单独的大文件,但 github 不允许我推送代码(100mb 限制)。

我读到我可以使用 LFS,但它非常令人困惑,我也尝试使用我的 .gitignore(见下文)但是,什么都没有......

/vendor
*.jpg
*.png
/public/
/shop/
/storage/
*.lock
.DS_Store
.idea/
.env
*.woff2
*.woff
*.html

我该如何解决这个问题?

谢谢。

【问题讨论】:

  • 肯定有一些东西是你不应该试图排除的,即整个 publicstorage 目录。在提交各自的文件/文件夹后,您是否添加了这些行中的任何一行?另外,shop 目录是什么,有多大?

标签: php laravel github


【解决方案1】:

正如您提到的,没有大的单个文件,这意味着不需要启用LFS。如果您想了解 Git 大文件存储,请参阅 LFS manual

要解决各种小文件的大型存储库的问题,您应该将存储库分解为小块并提交它们。正如Pushing Large Git Repository 解释的那样:

推送大型 Git 存储库可能会导致问题;超时, 断开连接或一般冻结往往发生在特别大的情况下 Git 存储库。处理推送那些大型 git repos 的最佳方法是 将推送分解为提交块。使用 git log 你可以决定 你想把你的整个推回多远和多少块 回购。只需记下您要上传的 Git 提交哈希,然后您可以使用正确的提交哈希执行以下命令。

还建议您在遥控器上指定完整的主位置。推送完成后,选择另一个更接近主 HEAD 的提交哈希。

您可能还想压缩您的提交或签出更改。使用 git 可以将 squash 以前的提交合并为一个。这是在与他人共享之前将某些更改组合在一起的好方法。退房 git loggit rebase 命令。这将有助于回到那个提交。

【讨论】:

    【解决方案2】:

    这里是最适合 laravel 项目的 .gitignore 文件:

    /node_modules
    /public/hot
    /public/storage
    /storage/*.key
    /vendor
    .env
    .env.backup
    .phpunit.result.cache
    Homestead.json
    Homestead.yaml
    npm-debug.log
    yarn-error.log
    

    【讨论】:

      猜你喜欢
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 2014-01-23
      相关资源
      最近更新 更多