【问题标题】:Git Clone on LAN from Windows to Ubuntu Server局域网上的 Git 克隆从 Windows 到 Ubuntu 服务器
【发布时间】:2015-05-19 18:02:48
【问题描述】:

所以我已经在 Windows 工作站上做了一段时间的项目,通过 git 跟踪开发。现在我需要将所述项目移动到 LAN 上的 Ubuntu 服务器上,事实证明这是一个很大的痛苦。我已经使用 SSH 登录到 Ubuntu 服务器,并尝试从 Windows 机器克隆项目。但是,我一直遇到相同的错误消息:

致命:“___”似乎不是 git 存储库

致命:无法从远程存储库读取。

请确保您具有正确的访问权限并且存储库存在

我尝试了多种协议和 URI,但结果始终相同。我不知道出了什么问题,我不确定在哪里寻找参考/获取更多调试信息。任何帮助将不胜感激,因为我真的在这里旋转我的车轮,无处可去。

以下是一些可能相关或不相关的附加点:

  • windows 机器在 cygwin 上运行一个 open-ssh 服务器,但是我也安装了 msysgit。我觉得这可能是个问题。
  • 我遇到了“bash: git-upload-pack: command not found”。我可以通过放置“--upload-pack”来解决这个问题
  • 我不认为我在 Windows 机器上使用的存储库被初始化为裸存储库。
  • 我将代码克隆到的目录归 git clone 命令的 URI 中的同一用户所有。

附录: 这是我在 Ubuntu 服务器上使用的命令示例:

git clone --upload-pack "c:/Program\ Files\ \(x86\)/Git/libexec/git-core/git-upload-pack" "ssh://username@ipaddress/cygdrive/c/Users/username/.../projectname.git"

【问题讨论】:

  • 您确定您使用的路径正确吗?如果是 cygwin ssh 服务器,则必须使用 cygwin 路径。例如,/cygdrive/c/my_git_repo 或类似的东西
  • 我尝试了各种 cygwin 路径,例如 /cygdrive/c/... 和 /c/...,带有第一个斜杠,没有第一个斜杠,采用 scp 样式,使用 https或 git 或 ssh。我不认为路径是问题,但从我目前的表现来看,我认为我的想法并不重要:(
  • 你能分享你的实际命令行吗?如果是这样,最好编辑您的答案以包含它
  • 我做了类似这样的移动,我想避免在 Windows 机器上运行任何服务器(包括 cygwin ssh 服务器),所以我这样做了:在新服务器上创建一个空存储库(mkdir repo.git;cd repo.git;git init;您可能需要添加--bare),将新存储库作为远程添加到 cygwin 内的现有存储库中(git remote add origin ssh://user@host/~/repo.git)并将所有内容推送到它(git push --all -u ; git push --tags
  • @EricRenouf 我添加并补充了您要求的信息

标签: windows git ubuntu ssh


【解决方案1】:

我使用 cygwin 已经有几个月了,但我记得在将 msysgit 与 cygwin 一起使用时遇到了问题。我更喜欢使用为 cygwin 打包的 git 版本。

我认为更简单的解决方案是将包含您的工作目录和.git 目录的目录从 Windows 复制到 ubuntu 服务器。

然后在 ubuntu 服务器上,您可以使用 git clone --bare /path/to/rsync'd/directory/ /path/to/new/repo.git

这应该起作用的原因是.git 目录的内容是repo。

【讨论】:

  • 是的,我卸载了 msysgit 并用 git 重新安装了 cygwin,克隆顺利完成。谢谢。
猜你喜欢
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 2012-05-29
  • 2018-05-13
  • 1970-01-01
  • 2018-08-02
  • 1970-01-01
相关资源
最近更新 更多