我正在寻找一些可以使用的版本控制方法或系统 - 但 SVN 或 Git 不起作用。
我写代码,一个人,没有团队
我使用几台不同的电脑,有些是私人的,有些是我雇主的
大多数 PC 运行 Windows 10,一些运行 Linux(Debian 衍生版本)
我希望我的代码能够在这些电脑上同步
我正在寻找一个自我管理的解决方案,我不想使用 Github 或类似的东西
在我雇主的电脑上,我无法使用 WebDav 或 SSH 连接
我的第一个尝试是在我的 NAS 上设置一个小型 git 服务器,当我使用自己的硬件时,它工作得很好。经过一番折腾,我发现我无法在工作场所的硬件上使用它,因为 SSH(和 WebDav,据我所知)连接被禁用了。而且我无法获得使用它的权限。
总体而言,版本控制对我来说还是个新事物。真惭愧,如果我想更改某些内容,我实际上会手动复制代码文件。计算机之间的同步是使用 NAS 作为数据云完成的 - 在我的私人硬件上。在工作场所的硬件上,我可以使用 Web 浏览器访问我的云存储并从那里下载相关文件。我使用的私人同步客户端在我雇主的 PC 上也无法使用。
由于编码不是我的全职工作,所以这并不是什么大问题。但这仍然不是一个很好的工作流程,所以我正在寻找可以帮助我以更好的方式完成工作的东西。
有什么想法什么方法或系统可能适合我的情况?
答案1
大多数 Git 托管服务实际上并不使用 WebDAV – 它们使用 Git 的“智能”HTTP 传输,客户端向 CGI 后端发出普通的 HTTPS GET 和 POST 请求。这意味着它可以与几乎所有代理和防火墙配合使用,并且效率与 SSH 差不多(比 WebDAV 高得多)。
所有自托管 Git 平台(例如 Gitea 和 Gogs)都支持“智能”HTTP 传输。
如果你喜欢手动操作,请参阅git http 后端(1)以及相关Git 书籍章节了解在您自己的服务器上进行配置的说明。(请注意,这是仅有的Git 协议服务并且不包含 Web UI,尽管如果需要它可以与 Gitweb/Cgit 位于同一个 URL 上。)
同样的想法也适用于 Mercurial (hg),其网页WSGI webapp 通过常规 HTTPS 提供 Web UI 和克隆/推送服务。