在git的远程存储库上创建私有分支

问题描述 投票:0回答:2

我想在我们公司的 git 上构建特定的流程。

  1. 开发人员在他的本地计算机上创建一个分支并在那里提交一些文件。
  2. dev将此分支推送到远程仓库
  3. 其他开发者无法访问此分支
  4. 经过几轮推动开发人员决定发布他的更改。
  5. 将他的私人分支合并到公共分支
  6. 推动公共分支。

换句话说 - 是否可以在公共存储库中配置私有远程分支?

git git-branch remote-branch
2个回答
13
投票

我的团队使用的流程是,除了主 git 服务器上的 origin 之外,还为每个团队成员拥有完整的独立存储库。

  1. Dev 在本地计算机上创建本地分支并提交
  2. 在一天结束时(或任何合适的时候)开发人员推送到他们的私人仓库
    git push jdoe-private my-cool-branch
  3. 开发人员决定他们很高兴该作品被发布并可能被合并,这样就可以整理它并重新设置它而不受惩罚
  4. Dev 将他们的分支推送到原点
    git push origin my-cool-branch

我们进行此设置的基本原理是允许开发人员自由变基并避免上游变基可能出现的问题,并进行完整备份。按照惯例,单独的存储库只是私有的,但如果需要,可以轻松添加访问控制。存在大量重复数据,但除非您的存储库真的巨大,否则这可能不是问题。


3
投票

我知道的常见解决方案是通过在分支名称前添加一些字符串来同意“分支名称空间”。例如,以“private/”开头的分支用于私人实验。然后你会得到像

这样的分支
  • 私人/JohnDoe/重构-税收计算
  • 私人/JohnDoe/newGUILayout
  • 私人/JaneJones/Java8
  • 私人/TKirk/建造宇宙飞船

这使分支保持独立,并明确它们的目的是什么。然而,这样分支仍然是公开的,因为任何人都可以看到并拉动它们。

如果您想根据用户限制对这些分支的访问,则需要某种基于分支的访问控制。核心 git 中没有这样的东西,但一些 git 托管服务器允许这样做(例如 Atlassian Stash)。我不知道有哪台服务器允许此类私有分支,但也许有一个服务器允许它或让您编写解决方案的脚本。

但是请注意,您所要求的内容相当不寻常。常见的解决方案是我上面概述的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.