是否可以为2个等效的Git存储库指定不同的文件夹结构? 开发环境测试环境

问题描述

我帮助维护的应用程序的某些环境具有当前无法更改的文件夹结构,例如:

开发环境

Folder 1
  |--File 1
  |--File 2

测试环境

Folder One
  |--File 1
  |--File 2

我需要保持文件夹结构不变,但是由于我目前无法重组文件夹,因此我希望在开发和测试环境之间进行更改。

我听说urbancode Deploy具有这样的功能,但是我想知道,单独使用Git还是Git和Shell可以实现?还有其他开源软件或扩展程序可以帮助您解决此问题吗?

解决方法

首先:请记住,git是版本控制工具,而不是部署工具。

git pull是非常方便的功能,但仅适用于部署脚本。
如果您需要对部署执行一些额外的操作(例如:重命名文件夹...),则可以编写一个简单的部署脚本:

#/bin/sh

git pull
rm -rf "Folder One"
cp -r "Folder 1" "Folder One"

其他一些方法:如果目标系统支持符号链接,则可以在存储库中添加符号链接:

ln -s "Folder 1" "Folder One"
git add "Folder One"
git commit -m "add symlink to match the expected structure on testing env"
,

实际上,UrbanCode Deploy可以实现这一点,因为您可以在部署过程之外定义环境的属性。

  • 您在文件夹1 / ONE下的文件和文件夹结构是一个组件,并且具有部署过程(无论您要在此处实现什么,只需对其定义一次,就可以确定目标)
  • 在部署过程中,该过程从UCD查询目标环境的属性,并为DEV获取文件夹1,为TEST获取文件夹Folder 1,其余的将文件和文件夹放在正确的目标目录中...