当前位置:  开发笔记 > 运维 > 正文

如何使我的本地存储库可用于git-pull?

如何解决《如何使我的本地存储库可用于git-pull?》经验,为你挑选了2个好方法。

我有一个工作副本存储库,我一直在工作没有问题; 此存储库的原点位于GitHub上.

我想让我的工作副本存储库可用作我的构建机器(另一个物理主机上的VM)的原点,因此我可以在构建机器上构建和测试我对工作副本的提交,而无需通过首先是GitHub.我已经有了GitHub存储库的构建,但我希望这是一个"黄金"存储库/构建; 即,如果有东西进入那里,应该保证对GitHub的构建通过.

我查看了有关Git URL的文档,并看到可以选择在表单中使用URL git://host.xz[:port]/path/to/repo.git/(例如,参见git-clone文档).我希望以最简单的方式执行此操作,只需最少的配置:我不希望设置SSH守护程序或Web服务器只是为了将其发布到我的构建计算机.

我正在运行Windows 7 x64 RC,我安装了MSysGit和TortoiseGit,并且我在防火墙上打开了Git的默认端口(9814).请假设工作副本仓库位于D:\Visual Studio Projects\MyGitRepo,主机名为devbox.构建计算机是Windows Server 2008 x64.我一直在构建机器上尝试以下命令,并带有相关的输出:

D:\Integration>git clone "git://devbox/D:\Visual Studio Projects\MyGitRepo"
Initialized empty Git repository in D:/Integration/MyGitRepo/.git/
devbox[0: 192.168.0.2]: errno=No error
fatal: unable to connect a socket (No error)

我错过了什么吗?



1> Jakub Narębs..:

存在五种可能性来设置拉出来的存储库:

本地文件系统:git clone /path/to/repogit clone file://path/to/repo.如果你有网络文件系统,但没有非常有效地使用网络,那么最少的工作.(这几乎是Joakim Elofsson提出的解决方案)

HTTP协议:git clone http://example.com/repo.您需要任何 Web服务器,并且还需要运行(可能是自动地,从钩子)git-update-server-info来生成通过"哑"协议获取/拉取所需的信息.

SSH:git clone ssh://example.com/srv/git/repogit clone example.com:/srv/git/repo.您需要设置SSH服务器(SSH守护程序),并在客户端上安装SSH(例如MS Windows上的PuTTY).

git协议:git clone git://example.com/repo.你需要在服务器上运行git-daemon ; 有关详细信息,请参阅文档(您可以将其作为独立进程运行,仅用于获取,而不必作为服务运行).git-daemon是git的一部分.

bundle:你使用git-bundle命令在服务器上生成bundle,以任何方式将它传输到客户端机器(甚至通过USB),并使用克隆git clone file.bndl(如果clone不起作用,你可以做"git init","git remote add "和"git fetch").

您的示例中缺少的可能是在服务器上运行git-daemon.那个,或者配置错误的git-daemon.

不幸的是,我无法帮助你在MS Windows上运行git-daemon作为服务.但是,msysGit的最新版本没有任何关于git-daemon无效的公告.



2> Pod..:

除了JakubNarębski的答案之外,还有另外一点,更符合你原来的问题.您可以像往常一样从github克隆,然后当您想从本地仓库执行一次性拉动时,只需执行以下操作:

git pull /path/to/repo master

(而不是master,你可以放任何分支名称.)

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有