使用GIT克隆从Windows机器到Linuxnetworking服务器(内部)

好的,我正在寻找一种方法来使用GIT来保持我的本地机器(git存储库)和我的网站(存储库的git克隆)之间的最新的网站。

我已经初始化存储库(在Windows 7计算机上),并将所有文件添加到我的本地计算机上的回购。 我现在需要得到回购webswerver(基于Linux的机器)。 我可以通过putty和ssh访问web服务器。 如何将repo克隆到相应的目录中以便为网站提供服务?

我已经从我的基于Linux的机器上尝试了以下内容:git clone git + ssh://myuser@10.1.0.135/d/webserver/htdocs/repo

我不断收到一个连接到主机10.1.0.35端口22:连接超时

两台计算机都位于不同IP范围(防火墙外)的networking服务器之外。 我来自颠覆,可以很容易svn提交/更新到Web服务器和我的机器没有问题。

感谢您的任何指导!

这是一个演练其他人做的。 它一步一步展示如何做你想做的。

我找到的最好的资源位于这里 。

我遇到的问题是,使用上述建议从* nix环境发出git克隆无法正确找到回购的路径。

我可以通过启动带有–base-path和–export-all参数的git守护进程来解决这个问题。

所以,从窗口框:

git daemon --base-path=C:/source/ --export-all 

然后从* nix框(在我的情况下mac):

 git clone git://<local ip>/<project name> 

我的窗口框的目录结构是:

 c:\source\<project name> - this is where the .git folder lives 

IP地址10.1.0.135保留给专用网络,这意味着它只在您的家庭网络中使用时指的是您的本地Windows计算机。 如果您在服务器上运行带有该地址的git clone命令,则10.1.0.135引用完全不同的计算机,这就解释了连接无法正常工作的原因。

这里是我的建议:不要尝试克隆家庭计算机上的存储库,首先在服务器上创建一个空的存储库

 server$ git init /path/to/repository 

然后将更改从计算机推送到服务器的存储库

 home$ git remote add website ssh://myuser@server/path/to/repository home$ git push website 

如果你愿意的话,你可以打电话给“网站”以外的其他地方。

对于稍微更高级的用法,我写了一篇博客文章,解释如何设置分段和生产服务器并使用git进行维护。 但是,如果你不想处理登台服务器,我还可以链接到一些简单的双库设置的教程,用git来管理一个网站,这基本上就是你想要的。

听起来像你的Windows 7机器(特别是端口22)可能无法从防火墙外部访问。 通过颠覆,网络服务器可能被两台机器访问。 此外,您的Windows机器的IP是不可路由的IP,这意味着您的防火墙可能也NAT您的内部网络。

您可以通过在防火墙中打开端口22或在防火墙中设置端口转发来指向您的Windows机器。 但是你可能应该在服务器上创建git仓库,然后从你的Windows机器上克隆。 你可以使用scp -r来获得服务器上的初始回购,不过有更多的git经验的人可能会告诉你更好的方法。

不管怎样,如果你需要把它检入到一个版本控制系统,那么这个好主意可以用Git来完成。

只是想提及你也可以看看rsync工具 – 例如谷歌“Rsync Windows”带来了一些不错的结果。

Rsync专门用于保持跨机器的目录树同步。 而且它很聪明,不会传输已经在另一端的文件,而且可以使用压缩。它具有大量的功能,通常用于UNIX生产环境。 有一些方法可以在Windows上运行它。

任何状况之下:

检查两台机器上的防火墙设置 – 相关端口需要打开。 在你的情况下,端口22可能被阻塞