我知道这听起来不太清楚,但是我仍然感到困惑。我正在阅读Git电子书,但不确定100%我是否完全理解它。如果有人觉得缺少信息,请告诉我,以便我补充。
从前一周开始,我们现在已经建立了一个自托管的git repo和服务器。此存储库是主存储库,它是暂存环境中当前使用的存储库。从这里开始,我们准备就绪后便手动重新部署到生产中。
现在(以及过去的情况),要进行更改,某人只需访问“文件”,然后在其所在的服务器上进行所需的更改。用户有很多实例可以节省彼此的工作,很多事情都会丢失。
我们要做什么:从该主服务器创建分支以使人们可以在上面编写代码,但是如果这些分支可以本地存储在用户机器上,而不是存储在主仓库所在的测试服务器上,那将是理想的选择。
>对于测试代码:这样做的方式是什么?将更改后的文件从本地分支推送到主节点,然后在那里尝试吗?实际上是在服务器上创建多个分支,而是在本地切换到那些分支吗?
不能单独测试代码,因此无论如何都需要将其添加到主版本/部署版本中。
我的任务是为我们的环境设置git,所以我希望使它尽可能简单而直接。
答案 0 :(得分:2)
刚开始时,Git和版本控制可能会造成混乱,因此,我将尝试分别回答您问题中的特定要点:
“ [..]进行更改,有人只需访问文件并在服务器上进行所需的更改[...] ”
您肯定要停止将文件直接写入生产服务器上的磁盘。理想情况下,您需要做的是通过持续集成服务器(例如 Jenkins 或 TeamCity )自动处理部署。
“ [...]如果分支可以本地存储在用户计算机上,而不是存储在主仓库为[...] 的测试服务器上”
这就是Git和版本控制的重点。您可以将文件托管在Git仓库中,并让每个开发人员克隆仓库的本地副本(git clone
。这样一来,他们就可以在pull
偶尔origin
的情况下push
来处理自己的代码。然后,他们会在代码完成后将origin
的更改退回到master
。
“ 我们要做什么:从该主服务器创建分支以使人们可以在其上编写代码。”
您在这里询问 Git Flow 。您应该在develop
的分支中创建一个单个分支,称为feature
,而在develop
的分支分支中,每个分支都从{{1 }}。单个功能完成后,应将其合并回develop
。
应该连接develop
分支(最好通过CI),以将其部署到您的开发和测试环境中。每当发生更改时,您都希望将develop
部署到开发服务器。
“ 用于测试代码:怎么做?”
“ 代码无法单独进行测试,因此无论如何都需要将其添加到主版本/部署版本中。”
您要在 develop
上进行测试。当候选发布版本中的所有功能(最终希望将其部署到生产中的更改组)完成时,您将需要将develop
分支部署到测试环境。在这里,您可以测试develop
的此版本,而其他开发人员可以将develop
的更高版本推送到开发环境中-测试环境不会得到更新。
对测试环境的测试感到满意后,当您要将代码部署到生产环境时,可以最终将develop
合并回master
(最好是利用release
分支(如果您正在处理正确的发布时间表)。然后master
已连接到您的生产环境。
通过Git Flow,您将仅在经过全面测试后将代码部署到master
,因此未经测试的代码将永远不会投入生产。