首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使我的本地存储库可用于git-pull?

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

Stack Overflow用户
提问于 2009-06-10 20:45:42
回答 6查看 81K关注 0票数 91

我有一个工作副本存储库,我一直在工作,没有问题;这个存储库的起源是在GitHub上。

我想让我的工作副本存储库作为我的构建机器(另一个物理主机上的VM )的源,这样我对我的工作副本所做的提交就可以在构建机器上构建和测试,而不必首先通过GitHub。我已经有了一个用于GitHub存储库的构建,但我希望它是一个“黄金”存储库/构建;也就是说,如果有什么东西在其中,那么针对GitHub的构建应该可以保证通过。

我看过关于Git的文档,发现可以选择使用git://host.xz[:port]/path/to/repo.git/形式的URL (例如,参见git-clone documentation)。我想用最简单的方式,用最少的配置做到这一点:我不想仅仅为了把它发布到我的构建机器上而设置一个SSH守护进程或web服务器。

我运行的是Windows7GitRC,我安装了MSysGit和TortoiseGit,并且我已经在防火墙上打开了x64的默认端口(9814)。请假定工作副本存储库位于D:\Visual Studio Projects\MyGitRepo,且主机名为devbox。构建机器是Windows Server2008 x64。我已经在构建机器上尝试了以下命令,并给出了相关的输出:

代码语言:javascript
复制
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)

我是不是遗漏了什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-06-10 22:13:14

有五种可能的方法来设置存储库以从以下位置获取:

  • local文件系统git clone /path/to/repogit clone file://path/to/repo。如果你有联网的文件系统,工作最少,但网络的使用效率不是很高。(这几乎就是)
  • HTTP协议提出的解决方案:git clone http://example.com/repo。您需要任何web服务器,还需要运行(可能是从钩子上自动运行) git-update-server-info来生成通过“哑巴”protocols.
  • SSHgit clone ssh://example.com/srv/git/repogit clone example.com:/srv/git/repo获取/拉取所需的信息。您需要设置SSH服务器(SSH守护程序),并在客户端安装SSH (例如,MS Windows).
  • git协议git clone git://example.com/repo上的PuTTY。您需要在服务器上运行git-daemon;有关详细信息,请参阅文档(您可以将其作为独立进程运行,仅用于获取,而不必作为服务运行)。git-daemon是git.
  • bundle:的一部分,您可以使用git-bundle命令在服务器上生成包,以任何方式(甚至通过USB)将其传输到客户端计算机,并使用git clone file.bndl进行克隆(如果克隆不起作用,您可以执行"git init“、"git remote add”和"git fetch“)。

您在示例中遗漏的可能是在服务器上运行git-daemon。或者错误地配置了git-daemon。

不幸的是,我不能帮助您运行git-daemon作为服务在MS Windows上。然而,在最新版本的msysGit的公告中,并没有关于git守护进程无法工作的任何内容。

票数 138
EN

Stack Overflow用户

发布于 2009-06-11 17:30:30

除了Jakub Narębski的回答之外,还有另一种方式,更符合你最初的问题。您可以像往常一样从github克隆,然后当您想要从本地存储库执行一次性提取时,只需执行以下操作:

代码语言:javascript
复制
git pull /path/to/repo master

(您可以输入任何分支名称,而不是master。)

票数 19
EN

Stack Overflow用户

发布于 2015-11-11 15:38:04

如果你有一条这样的路径

代码语言:javascript
复制
C:\Project\

而且你已经做了git init,所以你也有一个文件夹

代码语言:javascript
复制
C:\Project\.git\

现在创建一个新文件夹

代码语言:javascript
复制
C:\.git\

进入该文件夹并运行git clone --bare ..\Project (bare很重要),

返回到您的C:\Project\文件夹并执行git remote add-url local ..\.git\Project

现在,您只需执行git add -Agit commit -m "HelloWorld"git push local master

您可以共享Project文件夹,将其连接到Z:并执行git clone Z:\Project -您可以使用now git pull origin mastergit push origin master将更改从一台计算机推送到另一台计算机。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/978052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档