0

我刚刚从大学毕业,开始在一个三人开发小组工作。代码库目前不在任何版本控制系统下。我们的代码库采用传统的ASP,并且Adobe Contribute已经集成,允许内容创建者更新他们自己的内容。现在我们通过将Web服务器的驱动器映射到我们的工作站,直接在生产网站上开发。我坚信我们应该将某种形式的版本控制集成到我们的工作流程中,并停止在生产Web服务器上开发以支持本地开发的做法。版本控制工作流建议

我想象中的工作流程的工作类似如下:

  1. 获取每天的基础上从Web服务器的任何变化和更新本地文件
  2. 提交个人版本控制系统所取得的变化(Github上的例如)或分支
  3. 进行一些更改本地副本
  4. 提交我做的个人版本控制系统的变化(Github的举例)或分支
  5. P ush修改文件到网络服务器并处理任何冲突

我的思路可能不正确,但我正在寻找具有更多经验的人的建议。

+0

“我坚信我们应该将某种形式的版本控制集成到我们的工作流程中,并停止在生产Web服务器上开发以支持本地开发的做法。”你相信这一点是对的,尽管这个问题主要是基于意见的,因此可能会被关闭。请阅读[帮助/在线主题]中有关堆栈溢出的主题。 – Chris

+1

即使这是题外话,我会给你一些反馈。您说“每天从Web服务器获取任何更改并更新本地文件。”你期待什么样的改变?这听起来像你打算版本的Web内容。这通常不是一个好主意(至少不应该按照代码的方式进行版本控制)。使用Git或其他版本控制系统版本化您的代码,但不要包含内容(特别是用户生成的内容)。 – Chris

回答

1

由于您已经有网络服务器,您可以在您自己的服务器上设置git服务器(远程回购)。这将使远程仓库使用服务器端钩子更容易。

换版工作流程 coontrol直播网站如下:

工作对发展远程回购的本地副本 - >修改 - >提交 - >推到发展远程回购 - >如果您准备将更改部署到网站 - >将更改推送到生产远程回购。

先决条件:你的两个自己的服务器上的远程回购。

设置devleop远程回购:

# go to a directory, create an empty folder 
mkdir develop 
cd develop 
git init --bare 
# assume the URL for the develop repo is www.site/develop 

设置生产服务器:

# go to a directory, create an empty folder 
mkdir production 
cd production 
git init --bare 
# assume the URL for the develop repo is www.site/production 

在本地机器上,克隆制定回购和你想要的文件添加到版本控制混帐:

git clone www.site/develop 
cd develop 
# add all the files for the website which you want to manage in git 
git add . 
git commit -m 'message' 
git push origin master 

如果你已经推生产远程回购的文件,你可以使用下面的命令:

git remote add prodcuton www.site/production -f 
git push production master 

如果变化需要每次都立即推动生产远程回购更改推开发回购后,你可以使用,收到后钩在发展回购。混帐/钩文件夹:

#!/bin/bash 
git --work-tree=/path/to/develop --git-dir=/path/to/production checkout -f 

您也可以参考Simple automated GIT Deployment using HooksUsing Git to Manage a Live Web Site

+0

感谢您花时间详细回复我的询问。 – kmangame0