【问题标题】:Using GIT to clone from a windows machine to a linux webserver (in house)使用 GIT 从 Windows 机器克隆到 linux 网络服务器(内部)
【发布时间】:2011-12-10 09:13:48
【问题描述】:

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

我已初始化存储库(在 Windows 7 机器上)并将所有文件添加到本地机器上的存储库中。我现在需要将 repo 获取到 webswerver(基于 linux 的机器)。我可以通过 putty 和 ssh 访问网络服务器。如何将 repo 克隆到适当的目录以服务于网站?

我在基于 linux 的机器上尝试了以下操作:git clone git+ssh://myuser@10.1.0.135/d/webserver/htdocs/repo

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

两台机器都在内部,网络服务器位于网络之外的不同 IP 范围(防火墙之外)。我来自颠覆,可以轻松地向网络服务器和我的机器进行 svn 提交/更新,而不会出现问题。

感谢您对此的任何指导!

【问题讨论】:

  • 好主意。只是想提一下,您还可以查看“Rsync Windows”-例如谷歌带来了一些不错的结果。 Rsync 也是一个非常好的工具——它是专门为这类问题而设计的。检查两台机器上的防火墙设置 - 相关端口需要打开。在您的情况下,端口 22 可能已被阻止

标签: linux git


【解决方案1】:

我找到的最佳资源位于here

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

我可以通过使用 --base-path 和 --export-all 参数启动 git 守护进程来解决此问题。

所以,从 windows 框:

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

然后从 *nix 框(在我的例子中是 mac):

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

我在windows盒子上的目录结构是:

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

【讨论】:

  • @astroanu 和 skyking,我更新了链接,你可以删除你的 cmets,谢谢。
【解决方案2】:

Here is a walkthrough 别人做了。它一步一步地展示了如何做你想做的事。

【讨论】:

  • 我喜欢这个。这比尝试将 ssh 服务器添加到 Windows 7 机器要容易。
  • 就是这个,就在这里。绝对精彩!感谢您的链接,它执行起来很简单,而且非常直接。谢谢!
  • 我看不出该链接如何回答问题的 Windows/Linux 部分(尽管它可能对 OP 有用)。
【解决方案3】:

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

如果需要,您可以将远程调用为“网站”以外的其他名称。

对于更高级的用法,我写了一个blog post 解释如何设置登台和生产服务器并使用 git 维护它们。但是,如果您不想处理登台服务器,我还链接到一些关于使用 git 管理网站的简单的两个存储库设置的教程,这基本上就是您正在寻找的内容。

【讨论】:

    【解决方案4】:

    听起来您的 Windows 7 机器(特别是端口 22)可能无法从防火墙外部访问。使用 subversion,两台机器都可以访问网络服务器。此外,您的 Windows 机器的 IP 是不可路由的 IP,这意味着您的防火墙可能也在对您的内部网络进行 NAT。

    您可以通过在防火墙中打开端口 22 或在防火墙中设置端口转发以指向您的 Windows 计算机来解决此问题。但是您可能应该在服务器上创建 git 存储库,然后将其克隆到您的 Windows 机器上。您可以使用 scp -r 在服务器上获取初始 repo,尽管有更多 git 经验的人可能会告诉您更好的方法。

    【讨论】:

      【解决方案5】:

      如果您需要将其签入版本控制系统,那么使用 Git 执行此操作是个好主意。

      只是想提一下,您还可以查看 rsync 实用程序 - 例如google "Rsync Windows" 带来了一些不错的结果。

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

      无论如何:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-18
        • 2018-08-02
        • 1970-01-01
        相关资源
        最近更新 更多