Git 作为部署、开发和备份

标签 git workflow backup

我已经使用 Git 一年多了,但我觉得我需要微调我的工作流程。希望你能帮忙!现在我有 5 台电脑:

3 DESKTOPS/DEVELOPERS:我们在这里完成所有工作,当我们对更改感到满意时,我们将它们推送到网络服务器。

WEBSERVER: 网络服务器接收推送,然后它有一个钩子(Hook)来自动检查它们(因此一旦我们从桌面推送它们就会直接生效)。这是所有计算机用来推送和 pull 数据的中央单元。

备份: 好的,我还没有这个,但我打算安装一个。首先需要一些建议。

关于这一切的一些问题:

  1. 当然,有时图像等会通过 Apache 直接上传到网络服务器上。除非我们在网络服务器上进行手动添加和远程提交,否则我们不会在桌面上收到这些文件。让一个 cronjob 每天晚上在网络服务器上自动添加和提交是个好主意吗?

  2. 我打算为网站安装一个备份服务器。首先,我查看了 Rsync 和 rdiff-backup,但后来我意识到使用 Git 可能更好。然后我还将拥有所有提交的历史记录。那是个好主意吗?如果是这样,我是否只使用 git pull 创建一个 cronjob?

  3. 一些存储库由于删除和缓存的图像而变得非常大。在台式机和备份服务器上,我们有很多 HDD,所以这不是大问题,但 HDD 在网络服务器上非常昂贵。是否可以每晚自动删除和重置网络服务器上所有已删除和缓存的文件,但桌面和备份服务器上仍然有完整的历史记录?

最佳答案

这些问题很多。最重要的答案:不要将动态图像存储在 git 中。这不是 git 的设计目的,通常是一个坏主意。这也回答了问题 #3:不,那是不可能的。仅在 git 中存储属于您的代码/站点的图像。

关于备份:您的代码似乎不再需要任何备份。您已经在不同位置的不同机器上拥有 4 个完整的代码副本。除非你想在防火掩体中再增加一个备份,否则我认为没有很大的改进空间 :)。

如果您想要客户端上服务器的动态图像,请编写一个通过 ftp 同步它们的脚本。

关于Git 作为部署、开发和备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12556091/

相关文章:

MySQL 通过复制物理文件来备份 MyISAM 表 - 并自动化该过程

bash - 搜索整个 git 子命令、指南和概述手册页

git - Visual Studio 不适用于 git worktree

Git 卡在写对象上

javascript - 在 Node 中,使用 Q 使 2 个函数并行工作,但只等待第一个函数履行其 promise

.net-3.5 - 我应该在 WF 中使用状态机还是序列工作流程?

git - 一个文件夹中的多个 GIT 项目

c# - 将单个 C# 项目编译为多个 DLL

coldfusion - 我应该在ColdFusion 9中备份什么?

azure - 有没有办法获得azure服务运行代码的备份