Git 每个不同的分支都有一个工作区
Git with a workspace for each different branch
我想做的是设置一个远程服务器来使用 git 维护代码。我想在每个分支(包括主分支)上生成一个不同的工作区,以便同时为不同的版本提供服务。为什么?在将网页上传到生产环境之前,我正在本地 Web 服务器中配置 git 服务器以进行测试,当开发人员需要修改代码时,我想用他自己的工作区为此开发生成一个分支.通过这种方式,我可以在局域网的每台计算机上访问稳定版本以及开发人员即将发布的版本运行。 git 可以吗?还是我必须更改版本控制软件?
有没有可能,但是没有意义。
使用 git 因为你不 git 推送,所以所有更改都仅限于你的本地存储库,即如果你 git 提交,你会在本地保存更改。
所以你可以修改每个分支,然后提交你的更改,如果正确你可以推送到远程服务器,否则你可以恢复文件的以前版本。
我假设你的意思是你想检查你的网络服务器上每个当前分支的工作目录(你称之为 "workspace"),这样人们(开发人员,测试人员)就可以轻松快速地访问你的应用程序每个分支的状态。
这很容易实现:git branch --no-merged master
将为您提供所有 "open" 个分支,即尚未合并回 master
的分支。您还可以使用 git branch --list --no-merged master FEATURE-*
过滤分支名称,将为您提供所有以 "FEATURE-".
开头的非合并分支
从那时起,如果您使用的是 Unix:
cd somecurrentworkingdirectory
for branch in `git branch --no-merged master` ; do
echo Creating $branch
git clone git://source/repos/xyz /whereveryourwebserveris/branches/$branch -b $branch
... do more stuff to get it working on your webserver ...
done
如果您使用 Windows 并使用其他脚本语言,则类似。
此外,已有解决方案,例如 Jenkins("continuous integration"、"continuous deployment")。
我想做的是设置一个远程服务器来使用 git 维护代码。我想在每个分支(包括主分支)上生成一个不同的工作区,以便同时为不同的版本提供服务。为什么?在将网页上传到生产环境之前,我正在本地 Web 服务器中配置 git 服务器以进行测试,当开发人员需要修改代码时,我想用他自己的工作区为此开发生成一个分支.通过这种方式,我可以在局域网的每台计算机上访问稳定版本以及开发人员即将发布的版本运行。 git 可以吗?还是我必须更改版本控制软件?
有没有可能,但是没有意义。 使用 git 因为你不 git 推送,所以所有更改都仅限于你的本地存储库,即如果你 git 提交,你会在本地保存更改。 所以你可以修改每个分支,然后提交你的更改,如果正确你可以推送到远程服务器,否则你可以恢复文件的以前版本。
我假设你的意思是你想检查你的网络服务器上每个当前分支的工作目录(你称之为 "workspace"),这样人们(开发人员,测试人员)就可以轻松快速地访问你的应用程序每个分支的状态。
这很容易实现:git branch --no-merged master
将为您提供所有 "open" 个分支,即尚未合并回 master
的分支。您还可以使用 git branch --list --no-merged master FEATURE-*
过滤分支名称,将为您提供所有以 "FEATURE-".
从那时起,如果您使用的是 Unix:
cd somecurrentworkingdirectory
for branch in `git branch --no-merged master` ; do
echo Creating $branch
git clone git://source/repos/xyz /whereveryourwebserveris/branches/$branch -b $branch
... do more stuff to get it working on your webserver ...
done
如果您使用 Windows 并使用其他脚本语言,则类似。
此外,已有解决方案,例如 Jenkins("continuous integration"、"continuous deployment")。