【问题标题】:How to setup and clone a remote git repo on Windows?如何在 Windows 上设置和克隆远程 git 存储库?
【发布时间】:2012-03-07 17:07:43
【问题描述】:

有人知道如何从 Windows 服务器上的 git 远程存储库中签出、克隆或获取项目或代码吗?

Repository IP为:xxx.xx.xxx.xx,源文件目录为c:\repos\project.git

我习惯了 SUSE Linux 终端的命令行界面。我尝试过同样的方法,但它总是回复说

fatal: ''/repo/project.git'' does not appear to be a git repository
fatal: Could not read from remote repository..
Please make sure you have the correct access rights

谁能告诉我如何设置和克隆?

【问题讨论】:

  • 所以引用您尝试过的确切命令。没有它,就不可能知道你做错了什么。
  • Git,或者任何其他程序,都无法神奇地访问另一台计算机磁盘上的文件,除非您提供某种访问方法来访问它们。 Git 可以使用 3 种访问方法:远程文件系统、ssh 或 http (web)。您是否设置了这些方法中的任何一个?如果是,请编辑问题以指示其配置方式。否则编辑问题以询问如何设置。

标签: linux windows git ssh


【解决方案1】:

您必须从 Windows 机器设置某种共享,您可以使用 git 访问。 Git 支持 3 种访问方式:ssh、远程文件系统或 http。最后一个可能是最复杂的,所以我不会详细说明。前两个是:

  1. 在 windows 上设置 ssh 服务器。

    你可以试试这个指南:http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/。另请参阅this question 了解更多选项。

    比你克隆git clone username@xxx.xx.xxx.xx:/c/git/path/to/repo(你会被要求输入密码)。

    这种方法的优点是它是安全的(连接是加密的,ssh 服务器是值得信赖的),所以你可以在互联网上使用它。由于git server在访问过程中运行在windows机器上,你可以设置高级安全策略的钩子,控制其他进程等。

  2. 使用 Windows 共享来共享存储库。

    在 linux 主机上,您需要使用smbmount 挂载共享。这可能需要用户名和密码,具体取决于您设置权限的方式。

    比你克隆git clone /share/mountpoint/path/to/repo

    这可能更容易设置,但不是很安全,因此不应该在本地网络之外使用。同样在这种情况下,不会执行 windows 机器上的钩子(实际上 git 会尝试在 Linux 机器上执行它们,但它们要么不会在那里运行,要么无论如何都可以被绕过),所以你不能应用高级安全。

特定文件不相关,您需要提供包含.git 子目录的目录或裸存储库目录(上面的path/to/repo)的路径。

【讨论】:

  • 我尝试了使用自定义 ssh 端口的命令 ssh://user@xxx.xx.xxx.xx:xxxx/c/repos/project.git 但是休息,错误致命:''/c/repos/project.git'' 似乎不是 git 存储库致命:无法从远程存储库读取。请确保您拥有正确的访问权限
  • @AsimRazaKhan 我按照此处的说明使用了 UNC 路径 stackoverflow.com/questions/2519933/… 这有效并满足了我的需求。
【解决方案2】:

首先,git 仓库只是一堆你需要访问的文件。您写了关于克隆和获取存储库的文章,这很容易 - 您只需要访问文件(并具有读取权限)。

可以通过直接访问文件系统、通过 http(s) 协议或通过 ssh 连接来完成。实际上,甚至有一种方法可以通过 ftp 服务器来实现。

你可以做什么:

1) 设置 ssh 服务器,然后通过 ssh 服务器访问 git 文件 - 实际上,您应该使用的路径取决于您在 windows 上使用的 ssh 服务器:source

2) 设置网络服务器访问文件: git clone http://host/path/to/repo

3) 在你的 linux 机器上从 windows 挂载文件系统并克隆 repo: git clone /mnt/filesystem/path/to/repo

尽管你选择的方法我建议参考Pro Git Book的相应章节

【讨论】:

  • 我尝试了使用自定义 ssh 端口 ssh://user@xxx.xx.xxx.xx:xxxx/c/repos/project.git 的命令但是出现错误致命的休息:' '/c/repos/project.git'' 似乎不是 git 存储库致命:无法从远程存储库读取。请确保您拥有正确的访问权限
  • @AsimRazaKhan 您能否发布文件夹的内容(是否包含 .git 文件夹)和 .git 文件夹的访问权限(如果存在)
  • 是的,它包含 /c/repos/project.git/.git 中的 .git
猜你喜欢
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
  • 2017-09-09
  • 2011-04-03
  • 2011-10-18
  • 1970-01-01
相关资源
最近更新 更多