Git:让远程服务器从本地服务器提取

时间:2018-12-20 07:02:58

标签: git local remote-server

我目前具有以下环境:
-本地git服务器(Linux)
-开发PC(主要是Linux)
-实时应用程序的远程服务器(Linux)

可以从开发PC(通过ssh)访问这两个服务器,但是开发PC和本地git服务器不是“在线”(只是普通的消费者家庭网络,没有转发或类似内容)。

本地git服务器具有裸仓库,而开发PC已克隆了本地git服务器的仓库。

现在我想将仓库从git服务器克隆到远程服务器。远程服务器是应用程序的实时服务器。因此,每当应用程序获得更新时,远程服务器就必须再次从本地服务器中拉出。

由于我以前从未有过这种用例(远程无法到达本地服务器进行拉动),所以我对如何执行此操作一无所知。

在此先感谢所有尝试提供帮助的人:)

1 个答案:

答案 0 :(得分:0)

如果我正确解释了原始问题,则本地服务器只能由开发PC访问,而不能从远程服务器访问。

这意味着一种可能的解决方案是推送到本地存储库中的服务器存储库(而不是从服务器存储库中的本地存储库中获取)。您甚至可以推送到空的存储库:

$ git push -u <server-repo> <branch-name>

选项-u是可选的,仅用于为后续的推送设置默认的远程分支。

由于远程服务器上的存储库不是光秃秃的(您需要对应用程序进行检出),因此默认情况下它将拒绝推送到检出的分支。
有几种解决方案。一种变体是利用push-to-checkout钩子,它似乎完全可以满足您的需求。有关详细信息,请参阅git help githooks。不要忘记相应地设置配置receive.denyCurrentBranch,以确保远程服务器永远不会更改索引和文件。

相关问题