我想在我们公司的 git 上构建特定的流程。
换句话说 - 是否可以在公共存储库中配置私有远程分支?
我的团队使用的流程是,除了主 git 服务器上的 origin 之外,还为每个团队成员拥有完整的独立存储库。
git push jdoe-private my-cool-branch
git push origin my-cool-branch
我们进行此设置的基本原理是允许开发人员自由变基并避免上游变基可能出现的问题,并进行完整备份。按照惯例,单独的存储库只是私有的,但如果需要,可以轻松添加访问控制。存在大量重复数据,但除非您的存储库真的巨大,否则这可能不是问题。
我知道的常见解决方案是通过在分支名称前添加一些字符串来同意“分支名称空间”。例如,以“private/”开头的分支用于私人实验。然后你会得到像
这样的分支这使分支保持独立,并明确它们的目的是什么。然而,这样分支仍然是公开的,因为任何人都可以看到并拉动它们。
如果您想根据用户限制对这些分支的访问,则需要某种基于分支的访问控制。核心 git 中没有这样的东西,但一些 git 托管服务器允许这样做(例如 Atlassian Stash)。我不知道有哪台服务器允许此类私有分支,但也许有一个服务器允许它或让您编写解决方案的脚本。
但是请注意,您所要求的内容相当不寻常。常见的解决方案是我上面概述的解决方案。