1

我试图自己回答这个问题,但我能找到的只是太复杂或离我需要的太远了。

是否可以使用 Git/Bitbucket/Mercurial/... 在我的本地计算机 (NAS) 上维护大量网站,并在编辑完成后跟踪更改并上传正确的文件?

我不需要 github 上的在线存储库或类似的东西,不是吗?

我为什么要这个?

我是一名网络开发人员,必须维护大约 50 个网站。过去,我在本地机器上编辑文件并通过 FTP 或直接在远程服务器上上传。

两者都不安全。在第一种方式中,我需要跟踪哪些文件被编辑并上传所有文件。如果我忘记了某个文件,则页面不是最新的,或者更糟糕的是,应用程序/CMS 将无法工作。

第二种方法不是一个好习惯,因为当出现问题时,网络上的每个人都可以看到它;-)

4

5 回答 5

2

我认为您真正想要的是两件事 - 版本控制,如 git,以及部署机制。Git 是一个版本控制系统。我看不出让 git 参与实际部署的必要性或好处。

你可以拥有的是

  • git(托管)来存储您的源代码
  • Jenkins或类似做CI+部署

也可能是二进制工件回购。

我看到这个过程的方式是你做你的更改并签入。从那里自动化 CI 工具执行测试,进行分析并可能部署一个测试版本。然后,您可以检查测试是否通过,代码的健康状况如何以及分析报告等。如果您愿意,您可以按下按钮将更改部署到您的站点。

要使用的实际部署工具实际上取决于您的设置细节。版本控制不依赖于此。

于 2012-10-04T12:43:20.833 回答
1

是的,Git 允许您保留本地存储库。尽管您的使用模式听起来更像是您想要一个中央存储库和一个可靠的部署方法,一旦您对更改正确感到满意,就可以推出您的站点。

于 2012-10-04T12:19:58.373 回答
1

Git 非常适合您的网站开发,因为每个网站都可以是一个单独的 Git 存储库,并且您不需要任何类型的服务器进程。它简单而干净。另外,您可以通过 FTP 甚至电子邮件共享您的 Git 存储库。想象一下,如果在一个特定的网站上,您正在与另一个人一起工作。您可以通过电子邮件传递的补丁共享您的 Git 存储库。

您真正的问题是保持 Git 存储库中的内容与 Web 服务器同步。如果有人在服务器上编辑文件会发生什么?你想要那个改变吗?

在某些站点中,Web 服务器的目录只是对源存储库的检出。这允许您在服务器上进行更改,并将它们提交到您的存储库。它还为您提供了一种将 Web 服务器上的更改同步到存储库的简单机制(执行更新)。事实上,我什至见过 crontab 作业每晚自动将 Web 服务器同步到存储库。

当然,这意味着运行您要避免的实际版本控制服务器进程。

于 2012-10-04T13:48:18.390 回答
0

是的,您可以,无需上传到互联网,您的应用程序可以直接从一个版本或某些网络版本之一的树中读取。

因此,如果您有 Web A 的代码,您可以为“Web A with configs to run on local machine”创建一个树,然后将 apache/iis 上的虚拟服务器指向 neww 树的目录,即默认树是“主人”

于 2012-10-04T12:21:19.600 回答
0

是的,您可以将项目保存在 git 存储库中,例如 BitBucket,在本地计算机上编辑它们,完成后签入 ( git commit; git push),然后在托管网站时登录服务器并执行git pull

于 2012-10-04T12:21:31.053 回答