在git中的远程存储库上创建专用分支

时间:2015-01-30 14:24:42

标签: git git-branch remote-branch

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

  1. 开发人员在他的本地计算机上创建一个分支并提交一些文件。
  2. dev将此分支推送到远程仓库
  3. 其他开发者无法访问此分支
  4. 几轮之后,推动开发人员决定公布他的变化。
  5. 将他的私人分支合并为公共分支
  6. 推动那个公共分支。
  7. 换句话说 - 是否可以在公共存储库中配置私有远程分支?

2 个答案:

答案 0 :(得分:10)

我团队中使用的流程是为每个团队成员提供完整的单独存储库,以及主git服务器上的原始数据库。

  1. Dev在本地计算机上创建本地分支并提交
  2. 在一天结束时(或在适当的时候)开发推送到他的私人仓库git push jdoe-private my-cool-branch
  3. Dev决定他对发表的作品感到高兴,并且可能会合并,因此可以整理它并且不受惩罚地加以修改
  4. Dev将他的分支推送到原始git push origin my-cool-branch
  5. 我们的这种设置的基本原理是允许开发人员自由地改变并避免上游变基引起的问题以及完全备份。单独的存储库仅按惯例私有,但如果需要,可以很容易地添加访问控制。有很多重复的数据,但除非你的回购真的巨大,否则这可能不是一个问题。

答案 1 :(得分:1)

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

这样的分支
  • 私人/ JOHNDOE /重构-taxcalculation
  • 私人/ JOHNDOE / newGUILayout
  • 私人/ JaneJones / Java8
  • 私人/ TKirk /积聚飞船

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

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

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