我有很多虚拟主机网站,目前正在通过 chrooted SFTP 进行更新。更新由客户(通常使用 Dreamweaver 和 CuteFTP/Filezilla)和我公司的员工(通常使用 Eclipse Team Syncronisation 和 JCraft SFTP)完成。除非客户与我们同时编辑他们的网站,否则此设置可以正常工作。在这种情况下,我们必须不断同步以检查既慢又不可靠的变化。考虑到每个站点中的大量文件、缓慢的目录遍历和缺乏增量压缩,SFTP 传输也很慢。
我想转向(部分)Git 工作流程,主要是为了从增量压缩中受益,同时也引入一些基本的修订控制。我说“初级”是因为在将更改捆绑到 git 提交之前在本地开发和测试的典型 git 工作流程不适合我们的需求,因为:
- 为了方便或兼容,我们的一些客户需要使用 SFTP,而不是 Git
- 我不想强制使用特定的 SFTP 客户端(如 git-ftp)。我们的客户对自己的选择感到满意(例如 Dreamweaver 或 CuteFTP)。它们可能在任何操作系统上,并且不使用 shell。
- 我们的客户都不能在本地进行测试,每个小的更改都必须上传到网络服务器并立即“上线”(我们有测试站点,所以在这种情况下“上线”不一定意味着“生产”或“公开”)
- 大约 90% 的更改将是小的 1 行 CSS/HTML 更改,这使得提交消息非常耗时。
- 一些更改是通过 shell 或脚本直接在服务器 webroot 上完成的。
我想我想要的是远程 git repo 使用 webroot 作为工作目录,并自动提交在那里更改的任何文件,并带有一条通用消息,指示哪些文件已更改。但是,我一直在阅读,项目的主仓库不应该有工作目录(git init --bare),即使有,通常也不会提交在那里所做的更改。我不在乎此设置是否会丢失提交的所有权详细信息(因为它不知道谁更改了文件,我通常不在乎)。
失败了,我基本上想使用 Git 作为 Rsync-over-SSH 的替代品(Eclipse Team Sync 似乎不支持它)。任何暗示另一种技术的答案都需要支持 Eclipse(我选择的工具)和 Dreamweaver(我的客户选择的主要工具)。我意识到这并不理想,但没有商量余地。如果我可以强制使用 Git,我会的,这个问题将无关紧要。我必须与数百个客户打交道,主要是 Mac 上的图形设计师。
PS。我意识到当客户端没有足够定期地重新同步他们的本地文件时会出现问题。任何有关处理的建议将不胜感激。
任何人都可以提供有关此设置的指导(Centos 6.4 linux)。