我们希望通过GIT部署CMS。我们为什么要这样做的原因超出了问题的范围。我们想要做的事情可以在下面的图片中看到。
系统由许多文件和数据库组成。如果我们最初部署系统,则应将当前版本的开发数据库与系统一起部署(Diamond的右半部分)。
在系统正在使用时,用户会更改数据库,因此我们永远不会用新版本覆盖数据库。
其他文件可能会通过GIT(Diamond的左半部分)更新。如果我们将数据库放入同一个分支,它将覆盖用户的数据库,这不是我们想要的。因此,它应该在一个单独的分支或回购中。
鉴于master分支中的文件和db分支中的数据库(也包含所有文件),我们最初检查db分支。为了更新文件,我们切换到主分支,拉出文件然后切换回db分支并合并来自master的文件。
缺点是,数据库将被删除很短的时间。这有一些影响,我们不想应付。
有没有办法可以将整个系统与db一起部署,然后只更新文件而不切换到另一个分支并返回到master,这样数据库就不需要被Git删除?
我会很高兴任何想法。
答案 0 :(得分:0)
我找到了答案。
我可以将数据库放在db分支中。该分支包含master和数据库中的所有文件。
我用
克隆了最新的系统git clone http://host/myrepo.git mydir
cd mydir
git checkout db
我使用
获取最新文件而不触及数据库git pull origin master
"来源"是一个所谓的"远程"的名称。这将在结账后自动定义,并且是存储库URL的快捷方式。这句话说的是:
获取分支" master"来自url的存储库,该存储库由" original"远程定义。将获取结果合并到当前工作副本。