【问题标题】:Pushing out smallest repo possible, and issues with git subtree on shallow clone推出最小的回购可能,以及浅克隆上的 git subtree 问题
【发布时间】:2016-02-27 10:45:58
【问题描述】:

我正在尝试使用 git subtree pull --squash 将另一个 repo 合并为我的存储库中的子目录,称为 docroot。这发生在 Jenkins 工作区中,我正在尝试使用我的仓库的浅层克隆,因为它被推送到远程仓库来运行应用程序。当克隆有完整的历史时它很大,所以我试图在推出时让它尽可能小。当我尝试在我的存储库的浅层克隆(使用 git clone --depth=1 克隆)上发出 git subtree pull 时,我收到此错误:

无法压缩合并:从未添加过“docroot”。

如果我不使用--squash,它会运行,但存在需要解决的冲突,这对于必须经常运行的 CI 作业来说是不利的。我的目标是推出尽可能小的存储库以节省磁盘空间。将推出此应用程序的多个实例,因此我希望它尽可能小。我还将考虑使 repo 更小,但我见过的最大的大小减少是通过使用浅克隆来实现的。也许有更好的方法来解决这个问题?提前致谢。

【问题讨论】:

    标签: git deployment jenkins


    【解决方案1】:

    我建议通过使用另一个存储库docroot 作为原始存储库中的git submodule 来解决此问题。这假定 repo docroot 是独立的,并且不与父存储库共享任何代码。

    这样,您可以对父 repo 进行浅层克隆,并且不应该面临与已签出的完整 docroot 的任何冲突。

    【讨论】:

    • 不幸的是,我要推送到的目标服务器不支持 git 子模块。
    猜你喜欢
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 2019-08-11
    相关资源
    最近更新 更多