Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用GIT使操作系统保持最新_Asp.net_Git_Smartgit - Fatal编程技术网

Asp.net 使用GIT使操作系统保持最新

Asp.net 使用GIT使操作系统保持最新,asp.net,git,smartgit,Asp.net,Git,Smartgit,我不是Git新手,但也不是大师,我有一个问题。我们希望创建在网络中显示为文件夹的远程回购。这些文件夹实际上将包含一个以生产方式运行的大型传统ASP应用程序 然后,我们希望能够进行本地更改,并能够将提交推送到这些联网的repo,从而动态更新生产应用程序 我们已经在Github上有了回购协议,我们的开发人员也在本地进行了工作(我们使用SmartGit处理大多数日常事务) 然而(因为这个应用程序是巨大的和遗留的),我们(在使用Git之前)总是有一个将更改的文件复制到目标系统(生产、QA等)的过程 但我

我不是Git新手,但也不是大师,我有一个问题。我们希望创建在网络中显示为文件夹的远程回购。这些文件夹实际上将包含一个以生产方式运行的大型传统ASP应用程序

然后,我们希望能够进行本地更改,并能够将提交推送到这些联网的repo,从而动态更新生产应用程序

我们已经在Github上有了回购协议,我们的开发人员也在本地进行了工作(我们使用SmartGit处理大多数日常事务)

然而(因为这个应用程序是巨大的和遗留的),我们(在使用Git之前)总是有一个将更改的文件复制到目标系统(生产、QA等)的过程

但我突然意识到,我们或许可以将操作系统“视为”向master签出的回购协议。然后(经过适当测试后),我们只想使用SmartGit“推送”操作系统,并以这种方式交付更改

不过,我的Git知识还处于边缘,不确定这是容易做到的还是有风险的

我们不想在运行的机器上安装Git(它仅限于运行Windows 2003-是的,我知道…),所以我们只想将远程系统当作本地文件夹来对待,在本地机器上安装Git

有什么建议吗?

我的建议:不用麻烦了

您只能推送到裸存储库。它们只包含通常驻留在
.git
中的文件,根本没有工作目录。因此,您无法在服务器上“运行”这些。您需要推送到服务器上的一个裸repos,然后将该裸repos克隆/签出到服务器本身上的一个非裸本地repos(这可以在git内部的post-receive钩子中完成)。但正如您所说,您甚至不能在服务器上安装git。因此,
gitpush
对您没有任何帮助

第二种选择是将服务器文件系统装载到您拥有的任何登台/部署机器上,可能是一台可以安装git的机器。然后,您可以
git推送
到部署机器上的一个裸repos中,运行git钩子,并将新推送的内容复制到非git服务器文件系统中

第三种选择是在本地打包所有东西,制作一个tarball(或者,我猜,zip ball…),然后在服务器上解包

所以。自动化、连续部署=>好主意。使用git=>好主意。直接使用git-push
git-push
,没有那么多,主要是由于您的限制