我现在在一个使用Git的团队中,我们有一个非常好的工作流程。我们有一个有两个分支的中央存储库,dev和master。我们创建本地分支来处理单个任务。当它们准备好时,我们合并到dev中。然后,当一切准备就绪时,我们合并到master,并标记我们所有的版本。如果多个开发人员需要在一个任务上更直接地协作,我们可以创建另一个可能是临时的远程分支,供他们通过共享补丁。这对我们来说工作得很好,但它给我们留下了两个问题。
其中一个问题是备份问题。当然,大部分代码库都是备份的。每台拥有存储库克隆的机器都拥有大部分代码。但是,某些人在一天中编写的代码不会备份,直到它们合并到dev和push。如果他们正在处理的任务不是微不足道的,那么他们可能需要几天时间才能有任何合并和推送的价值。我们如何确保正在进行的工作代码被备份到一个中央安全的地方?只是在Git之外使用一些备份解决方案?
第二个问题是监控员工进度的问题。经理希望能够看到开发人员每天都写了什么代码。如果有一天你在没有推出任何东西的地方买东西,那么看起来你一天都没有做任何事情。我们需要一些方法来展示我们每天的工作,而不是强迫我们提交和推送那些还没有准备好提交、合并和推送的代码。
我们考虑的一个解决方案是在中央存储库上为我们创建的每个单独的本地分支创建一个远程分支。这可能会起作用,但即使我们定期删除旧的未使用的分支,它也会变得混乱不堪。管理所有这些也有很多额外的工作。
我们如何才能在不中断Git工作流程的情况下满足这些业务需求?
发布于 2009-11-20 02:02:46
你可以考虑做这样的事情。对私有开发人员备份使用非分支命名空间。例如,refs/backups/xxx/*,其中xxx是开发人员的用户id或缩写或类似的。
然后,开发人员可以执行git push origin +refs/heads/*:refs/backups/xxx/*来备份他的所有本地分支。
默认情况下,开发人员看不到彼此的私有备份,但如果需要,这些备份是可以检索的。
备份推送公式可以通过别名制作成git backup命令。
虽然我认为这不是一个好主意,但开发人员的私有分支可以用来查看他的“进展”,这听起来很像微观管理。
编辑:在写它的时候,我感觉很熟悉,然后我记起了为什么。不久前,我在回答另一个问题时写过类似的东西:link。
发布于 2009-11-20 05:58:56
refs/remotes/<username>/命名空间中:远程“备份”url =Gerrit@backup.example.com/srv/git/backup.git push = +refs/heads/*:refs/remotes/user/*
上的"Gerrit: Google-style code review meets git"文章
https://stackoverflow.com/questions/1765218
复制相似问题