在以下情况下与git合作的最佳做​​法是什么?

时间:2009-04-14 08:34:08

标签: git

Bob和Alice获得了对 RemoteMachine 的ssh访问权限,他们与ProjectA一起工作。 假设Alice在她的主目录中有一个回购

RemoteMachine/home/alice/ProjectA 

而 鲍勃将首先克隆爱丽丝的回购(可能是--bare更好)

RemoteMachine/home/bob/ProjectA

Bob不会直接在RemoteMachine中编辑ProjectA。所以也许他想从他的远程Repos RemoteMachine/home/bob/ProjectA 克隆到LocalMachine(为什么不直接从Alice克隆?也许Alice想直接从 RemoteMachine/home/bob/ProjectA )。

git clone bob@RemoteMachine:/home/bob/ProjectA LocalMachine/home/bob/PrjA

我的问题是:

实现这一目标的最佳做法是什么(见下文)?

  • 我可以在本地编辑并推送到RemoteMachine / home / bob,可能是:

    本地/鲍勃/回购> git push

  • 我可以在我的LocalMachine中运行reset命令,但仍然可以反映到Alice可以从中提取的 RemoteMachine/home/bob

    本地/鲍勃/回购>重置 - 硬HEAD ^

  • 我可以获取Alice在我的LocalMachine中更改的内容。

我不知道这些需求是否合理,所以如果你发现它不是,那就是 提出你的并解释原因。如果您能在这种情况下使用git命令显示工作流程,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果您要使用push,通常最好使用--bare从原始文件中克隆第3个存储库,并让所有开发人员都去那里。

答案 1 :(得分:0)

您的工作流程听起来很合理。你已经让爱丽丝和鲍勃在RemoteMachine上拥有了自己的“可共享”回购,并且每个人都可以从那里下载到LocalMachine进行开发。当他们完成他们想要分享的东西时,他们可以将其推送到RemoteMachine上的回购中,在那里它可以被其他人看到。我认为你遗漏的一件事是Quan在质量保证中拥有的另一个回购。当爱丽丝和/或鲍勃认为某些东西是值得生产的时候,他们会推翻奎因的回购。然后Quinn接受并通过他严格的测试等运行它,最终如果它通过他推出一个新的包。或者,Quinn可能是某种类型的持续集成机器人,如Hudson或CruiseControl,或者其他一些可以执行autobuild和测试步骤的机器人。这个回购,无论是由Quinn还是buildbot拥有,也可能是Alice和Bob通过拉动从同步他们的回购的地方 - 这是每个人开发的“规范”代码集。

您概述的工作流程很好,就其而言。我希望这个答案有所帮助。