Git - Howto将两个存储库混合在一起

时间:2015-11-03 18:09:46

标签: git deployment

我们希望通过GIT部署CMS。我们为什么要这样做的原因超出了问题的范围。我们想要做的事情可以在下面的图片中看到。

系统由许多文件和数据库组成。如果我们最初部署系统,则应将当前版本的开发数据库与系统一起部署(Diamond的右半部分)。

在系统正在使用时,用户会更改数据库,因此我们永远不会用新版本覆盖数据库。

其他文件可能会通过GIT(Diamond的左半部分)更新。如果我们将数据库放入同一个分支,它将覆盖用户的数据库,这不是我们想要的。因此,它应该在一个单独的分支或回购中。

鉴于master分支中的文件和db分支中的数据库(也包含所有文件),我们最初检查db分支。为了更新文件,我们切换到主分支,拉出文件然后切换回db分支并合并来自master的文件。

缺点是,数据库将被删除很短的时间。这有一些影响,我们不想应付。

有没有办法可以将整个系统与db一起部署,然后只更新文件而不切换到另一个分支并返回到master,这样数据库就不需要被Git删除?

我会很高兴任何想法。

Git Deployment

1 个答案:

答案 0 :(得分:0)

我找到了答案。

我可以将数据库放在db分支中。该分支包含master和数据库中的所有文件。

我用

克隆了最新的系统
git clone http://host/myrepo.git mydir
cd mydir
git checkout db

我使用

获取最新文件而不触及数据库
git pull origin master

"来源"是一个所谓的"远程"的名称。这将在结账后自动定义,并且是存储库URL的快捷方式。这句话说的是:

获取分支" master"来自url的存储库,该存储库由" original"远程定义。将获取结果合并到当前工作副本。