【发布时间】:2019-12-11 09:20:11
【问题描述】:
我搜索了一下,但只找到了类似问题的解决方案。那么,是否有可能拥有一个仅包含 Production(或任何您喜欢的名称)分支的远程仓库,并且不引用合并到 Production 的其他分支上的提交?我们永远不会进行快进合并,因此Production 分支将只有发布提交,这些提交旨在实际发布。
我们的目标是限制对没有开发历史和中间进度的正确版本的访问。我试图寻找限制分支访问,但只找到了保护分支从写入到不读取的引用。我确实意识到这可能有点违背 Git 本身的目的,我可能只是将发布包上传到某个地方,但如果可能的话,增量保存它似乎更容易,磁盘空间/网络效率更高。
我可以想象的解决方法是拥有第二个本地存储库,我将在其中仅复制和提交当前版本代码,但目前它是 B 计划。 :-)
【问题讨论】:
-
我不确定我是否理解您要解决的问题。在生产中提供额外的提交是否会导致任何问题?无论如何,如果你不想要任何历史记录,你可以使用 rsync 比使用 git 协议更节省带宽。
-
搜索“git squash”。基本上和过于简单化:你在一个拥有所有历史的分支上开发。完成后,您通过将所有分支提交压缩为一个,将该分支合并到生产中。然后,您只在您的参考遥控器上推送该生产分支。
-
@SvenMarnach 我想了解历史,但仅限于发布提交。我们正在尝试一种没有“正在进行”的东西的“前端”回购。这肯定有点心血来潮,但我想知道 git 是否可行。 :-)
-
@Zeitounator 我想您还必须将压扁的提交重新定位到
Production分支上?谢谢你的提示,我会调查的。 -
@konrad 你可以简单地使用
git merge --squash,如果这是你想要的,不需要变基。