我是否可以使用Git进行开发,并且只使用FTP访问

我是否可以使用Git进行开发,并且只使用FTP访问,git,version-control,ftp,Git,Version Control,Ftp,我在任何时候都在许多小企业网站上做自由职业者的工作。通常,他们的设置需要本地数据库和其他服务器配置,所以我必须直接在他们的服务器上开发和测试 目前,我通过FTP(使用Transmit)挂载客户机的服务器,并直接在其服务器上的站点开发副本上进行更改和测试,当我确信这些文件可以工作时,将其复制到实时版本 如果没有shell访问(有些甚至是基于Windows的服务器),有没有一种方法可以将Git应用到我的工作流程中来维护站点的版本历史记录 编辑:由于我已将他们的web文件夹作为卷装载到我的计算机上,我

我在任何时候都在许多小企业网站上做自由职业者的工作。通常,他们的设置需要本地数据库和其他服务器配置,所以我必须直接在他们的服务器上开发和测试

目前,我通过FTP(使用Transmit)挂载客户机的服务器,并直接在其服务器上的站点开发副本上进行更改和测试,当我确信这些文件可以工作时,将其复制到实时版本

如果没有shell访问(有些甚至是基于Windows的服务器),有没有一种方法可以将Git应用到我的工作流程中来维护站点的版本历史记录

编辑:由于我已将他们的web文件夹作为卷装载到我的计算机上,我是否可以将他们的开发子文件夹用作我的git暂存目录?我可以直接进行更改和测试,然后提交,而无需任何额外步骤


在web路径中隐藏Git的文件会是一个安全问题吗?文件是远程的这一事实是否会导致Git运行速度慢得令人望而却步?假设只有我在服务器上开发,这似乎是一个合理的解决方案。

如果在客户端机器上保留存储库的克隆不是一个要求:因为您似乎只在本地处理和测试更改,您应该在(本地)上为每个客户端设置一个git存储库用于跟踪更改的开发机器。然后,一旦您更改/提交/测试了这些更改,就回到当前使用FTP复制这些更改的方法。您将立即获得源代码管理的好处,并且如果有任何理由在客户机上安装存储库的克隆,您可以随时在以后的客户机上设置git共享。真正重要的是将项目放入任何存储库中

否则,如果必须在客户机上安装repo克隆,则有一种快速的替代方法:git安装通常支持
git守护进程
,它允许客户机/服务器TCP访问存储库。但是没有身份验证,所以最好只在localnet上使用;因此,在您的情况下,这确实不是一个可行的解决方案

更好的解决方案是在客户端windows机器上设置某种ssh服务器,然后跨ssh配置git访问。有几款商业产品试图在Windows上实现这一交钥匙:。两者都是付费软件

如果你环顾四周,你会发现一些自己做这件事的教程。这是一个

这并不涉及在Windows以外的平台上设置ssh访问,但通常在Windows上设置ssh是一项困难的任务


当然,任何解决方案最初都需要一些对客户端机器的访问,以至少设置git。

如果您不能创建单独的开发环境,那么您真的是自找麻烦(而且麻烦很多)。您应该先考虑让本地环境运行,然后在该环境中使用git。@Nic因为每个客户端的设置不同(服务器设置、软件版本、操作系统),我必须在它们的服务器上工作和测试,否则我将错过各种问题。我从未遇到过无法在本地复制的设置——有些设置比其他设置更具挑战性(例如,一个设计非常糟糕的ColdFusion webapp),但关键是在本地环境中拥有您完全可以控制的东西。你真的可以潜入其中,通过ftp自动同步你的更改,但我真的会尝试创建一个本地环境。对于数据库之类的东西,您始终可以将本地副本连接到它们的开发数据库。只需在本地获取一份代码库副本,这样您就可以在那里获得某种版本控制。@Nic不幸的是(对我来说!)这些客户中有许多是小企业(餐馆、律师、非营利组织),我只为他们工作约4-10个小时。在我的机器上设置本地版本的设置,特别是当我可能不知道它的哪些独特的“功能”会有问题时,可能需要比我受雇做的工作更多的时间。我全心全意地同意本地发展是最好的做法,但我必须考虑开销。你看到了吗?首先,谢谢你周到的回答,但我不确定一件事。如果存储库位于我的本地(客户端)计算机上,我是否必须在每次提交时将整个项目(或记住复制我接触过的每个文件)复制到我的本地计算机上?Jordan:根据Nic的评论,我的回答假设您在本地(而不是在远程客户端计算机上)进行更改和测试,然后将更改复制到客户端。在您对问题进行编辑之前,我误解了您的工作流程,或者您的编辑澄清了您正在每个客户机上进行编辑/测试。我将尝试编辑我的答案以反映这一点。