我试着自己回答这个问题,但我能找到的东西太复杂或太远了我所需要的。
是否可以使用Git / Bitbucket / Mercurial / ...在我的本地计算机(NAS)上维护很多网站并跟踪更改并在编辑完成后上传正确的文件?
我不需要github上的在线存储库或类似的东西,不是吗?
为什么我要这个?
我是一名网络开发人员,必须维护大约50个网站。过去,我在本地计算机上编辑了文件,并通过FTP或直接在远程服务器上上传。
两者都不安全。 在第一种方式中,我需要跟踪编辑的文件并上传所有文件。如果我忘记了某个文件页面不是最新的,那么应用程序/ CMS将无法正常工作。
第二种方式不是一种好的做法,因为当出现问题时,网络上的每个人都可以看到它; - )
答案 0 :(得分:2)
我认为你真正想要的是两件事 - 版本控制,如git和部署机制。 Git是一个版本控制系统。我没有看到让git参与实际部署的必要性或好处。
你可能拥有的是
也可能是二元神器回购。
我看到这个过程的方式是你进行更改并检查它们。从那里自动化CI工具执行测试,进行分析并可能部署测试版本。然后,您可以检查测试是否通过,具有分析报告的代码的健康状况等。如果您愿意,可以按下按钮将更改部署到您的站点。
要使用的实际部署工具实际上取决于您的设置细节。版本控制不依赖于此。
答案 1 :(得分:1)
是的,Git允许您保留本地存储库。虽然您的使用模式听起来更像是您想要一个中央存储库,并且一旦您满意就可以使用可靠的部署方法来推出您的网站,这些更改是正确的。
答案 2 :(得分:1)
Git非常适合您的网站开发,因为每个网站都可以是一个单独的Git存储库,您不需要任何类型的服务器进程。它简单而干净。另外,您可以通过FTP甚至电子邮件共享您的Git存储库。想象一下,如果在特定网站上,您正在与另一个人合作。您可以通过电子邮件传递的补丁分享您的Git回购。
您真正的问题是保持Git存储库中的内容与Web服务器同步。如果有人在服务器上编辑文件会怎么样?你想要改变吗?
在某些站点中,Web服务器的目录只是源存储库的检出。这允许您在服务器上进行更改,并将它们提交到您的存储库。它还为您提供了一种简单的机制,可以将Web服务器上的更改同步到您的存储库(执行更新)。事实上,我甚至已经看到了crontab作业每晚自动将Web服务器同步到存储库的位置。
当然,这意味着运行一个实际的版本控制服务器进程,这是您要避免的。
答案 3 :(得分:0)
是的,您可以,无需上传到互联网,您的应用可以直接从一个版本或某个网络版本的树中读取。
因此,如果您有Web A的代码,您可以为“Web A with configs在本地计算机上运行”创建一个树,然后将apache / iis上的虚拟服务器直接指向neww树的目录,默认树是“主人”
答案 4 :(得分:0)
是的,您可以将项目保存在git存储库中,例如BitBucket,在本地计算机上编辑它们,在完成后检入(git commit; git push
),然后在托管时登录服务器网站并执行git pull
。