我是一个由10名成员组成的团队,我们建立了网站(其中有几十个,每个约9GB)。由于该公司是老式的,我们不使用git或任何类型的版本控制,而是我们有3种不同类型的服务器(通常运行Windows服务器):
可以看出,我们实际上是使用3种风格的分支:测试,预览和掌握。
但是我们每个人都没有服务器:
我们访问本地服务器(文件夹)并直接修改文件, 并通过浏览器我们看到了变化。通常我们不访问 同一个文件,所以我们没有冲突。
我知道我们应该在我们的个人计算机上运行服务器,进行我们需要的更改然后将它们推送到远程预览和官方服务器......但我们不能这样做,因为我们已经有7运行所有本地网站的不同工作站(在我们办公室附近的房间)。
也许我们应该: 不要改变我们在本地工作的方式,在所有服务器中设置git所以: 我们将更改从本地服务器推送到预览和官方服务器。
那么,我如何配置git以满足我们的需求呢?有某种 我应该研究哪些策略?
答案 0 :(得分:0)
你应该看看a successful branching model:正如你所提到的那样,你将拥有3个分支(测试,预览,主控),你将从测试工作站管理(将更改合并到preview
和master
)。
然后您将推送到不同的遥控器,即您需要为要发布的每个服务器定义一个。例如,每个服务器都会将相关分支签出为git checkout -b preview origin/preview
。
现在的诀窍是你无法推送到工作副本(你已经签出的分支,在上面的例子中是preview
)。您需要转到origin/preview
。在预览服务器上,您需要执行git rebase
。此外,您可以在远程服务器上创建更新后挂钩,以便在传入更新时执行git rebase
。
至于在同一个文件集中一起工作,嗯,这需要一个额外的步骤来进行以前的常规协调:开发人员需要小心只提交他们自己的更改。此外,由于您分支整个项目,因此无法在工作流中提出的单独分支上工作。你注定要坚持test
分支。