我不是Git新手,但也不是大师,我有一个问题。我们希望创建在网络中显示为文件夹的远程存储库。这些文件夹实际上包含一个以生产方式运行的大型遗留ASP应用程序。
然后我们希望能够进行本地更改并能够将提交推送到这些联网的回购,从而动态更新生产应用程序。
我们已经在Github上拥有了回购,我们的开发人员在当地工作(我们将SmartGit用于大多数日常工作)。
然而(因为应用程序庞大且遗留)我们(在使用Git之前)总是有一个将更改的文件复制到目标系统的过程(生产,QA等)。
但我突然明白,我们可以将操作系统视为""一个已经签出来掌握的回购。然后(经过适当的测试)我们想简单地使用SmartGit做一个"推送到"操作系统并以这种方式进行变更。
我在Git知识的边缘,但不确定这是否容易做或有风险。
我们不想在操作机器上安装Git(它仅限于运行Windows 2003 - 是的,我知道......)所以想要简单地将远程系统视为本地文件夹 - 使用Git安装在我们当地的机器上。
任何提示或建议?
答案 0 :(得分:1)
我的提示:不要打扰。
您只能推送到裸存储库。它们只包含通常驻留在.git
中的文件,根本没有工作目录。所以你不能“运行”服务器上的那些。你需要在服务器上推送到一个裸存储库,然后克隆/检查那个裸存储库到服务器本身的非裸本地存储库(这可以在git中的post-receive钩子中完成)。但正如你所说,你甚至无法在服务器上安装git。所以git push
对你没有任何帮助。
第二个选项是将服务器文件系统挂载到您拥有的任何登台/部署计算机上,可能是您可以安装git的计算机文件系统。然后你可以git push
进入该部署机器上的裸存储库,运行git hooks,并将新推送的东西复制到你的非git服务器文件系统中。
第三个选项是将所有内容打包在本地,制作tarball(或者,我猜,拉链球......)并在服务器上解压缩。
因此。自动连续部署=>很好的主意。使用git =>很好的主意。直接使用git push
,而不是主要是因为你的约束。