代码之家  ›  专栏  ›  技术社区  ›  Apreche

如何使用中央存储库管理备份和监视Git?

  •  5
  • Apreche  · 技术社区  · 15 年前

    我现在在一个使用Git的团队中,我们有一个非常好的工作流。我们有一个中央存储库,有两个分支,dev和master。我们创建本地分支来处理单个任务。当它们准备好时,我们就合并到dev中。然后,当一切就绪时,我们合并到master,并标记所有版本。如果多个开发人员需要更直接地合作完成一个任务,我们可以为他们创建另一个可能是临时的远程分支来共享补丁。这对我们来说很好,但它给我们留下了两个问题。

    一个问题是备份问题。当然,大多数代码库都是备份的。每台拥有存储库克隆的机器都拥有大部分代码。但是,在一天中有人编写的代码在合并到dev和push之前不会被备份。如果他们正在处理的任务是非琐碎的,那可能需要几天时间,他们才能有任何值得合并和推动的事情。我们如何确保这个进行中的代码备份在一个中央安全的地方?只需使用Git外部的备份解决方案?

    第二个问题是监控员工进度的问题。经理希望能够看到开发人员每天编写的代码。如果一天去买东西的时候你什么也没推出,那看起来你一整天都没做什么。我们需要一些方法来每天展示我们的工作,而不是强迫我们提交和推送还没有准备好提交、合并和推送的代码。

    我们考虑的一个解决方案是在中央回购上为我们所做的每个本地分支创建一个远程分支。这可能会奏效,但这将是一个大混乱,即使我们经常删除旧的未使用的分支。管理这一切还需要很多额外的工作。

    我们如何在不中断Git工作流的情况下满足这些业务需求?

    2 回复  |  直到 11 年前
        1
  •  3
  •   Community CDub    8 年前

    你可以考虑这样做。使用非分支命名空间进行私有开发人员备份。例如。 refs/backups/xxx/* 其中,xxx是开发人员的用户ID、首字母或类似名称。

    开发人员可以这样做 git push origin +refs/heads/*:refs/backups/xxx/* 备份他所有的本地分支机构。

    默认情况下,开发人员看不到彼此的私有备份,但在必要时可以检索到它们。

    备份推送公式可制成 git backup 通过别名执行命令。

    虽然我认为这不是一个好主意,但开发人员的私人分支机构可以用来查看他的“进展”,听起来很像微观管理。

    编辑: 写这篇文章的时候,我觉得很熟悉,然后我记起了为什么。不久前,我在回答另一个问题时写过类似的东西: link .

        2
  •  2
  •   Jakub Narębski adamtaub    15 年前
    • 备份单个存储库

    • 创建一个“备份”存储库,其他人将完成的工作推送到该存储库中 refs/remotes/<username>/ 命名空间:

      [remote "backup"]
          url = user@backup.example.com/srv/git/backup.git
          push = +refs/heads/*:refs/remotes/user/*
      
    • 使用 Gerrit "Gerrit: Google-style code review meets git" lwn.net上的文章