【问题标题】:CopSSH + Git: path issueCopSSH + Git:路径问题
【发布时间】:2010-03-26 13:26:49
【问题描述】:

我很困惑。

我已经安装了 copSSH 并将其与 msysgit 安装链接(通过添加路径)。 现在,每当我使用 copSSH 工具(如 ls、cd)时,我都应该使用“/home”、/cygdrive/d/copSSH/home 等形式的绝对路径。

但是当我使用 git 时,我应该使用不同(另一种)形式的绝对路径。 比如'/copSSH/home'、'd:/copSSH/home'。

对我来说,这真的很奇怪。 有人对此有任何线索并知道如何解决吗?

非常感谢安德烈。

附:我使用 WinXP,git 版本 1.7.0.2.msysgit.0,copSSH 3.1.0。 一切都是使用安装的 http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/ 文章(有一些修改)。

【问题讨论】:

    标签: ssh msysgit


    【解决方案1】:

    不幸的是,cygwin 和 mingw 映射 windows 驱动器和目录的方式不同,因此在输入任何路径之前,您需要知道它是 cygwin 还是 mingw 二进制文件。

    我可以建议从 PATH 中删除 CopSSH bin 目录(至少从 git bash 路径中删除),以便所有可用的 shell 命令都使用 mingw 格式。唯一拥有 cygwin 路径的地方就是当您以这种方式执行和 ssh 操作时。例如,当您从d:\repositories\myrepo.git 克隆时,您可以使用git clone ssh://user@srv/cygdrive/d/repositories/myrepo.git(cygwin 形式)。要在 git 中工作,比如 d:\clones\myrepo,您可以使用 ls /d/clones/myrepo(mingw32 形式)。

    另外,在尝试任何 git 克隆之前,您可以使用 putty 或 plink 建立 ssh 连接,然后环顾四周。如果在 ssh 连接中,你可以做ls /home/myrepo.git,那么git clone ssh://user@srv/home/myrepo.git 应该可以工作。

    【讨论】:

    • 嗨,感谢您的回答,这是一个很好的线索,cygwin 和 mingw 有不同的方式来映射 Windows 驱动器。而且似乎git使用mingw格式,因此克隆的有效链接是:ssh://gndrij@192.168.1.207:3636/work/git-bare/cathi_sim.git 这里的问题是我需要这种方式向用户 gndrij 授予 d:, d:/work, d:/git-bare 的权限 :(.
    • 关于 CopSSH bin 目录和 PATH 的建议怎么样。我没有找到他们。我的路径:PATH=c:\Programme\NVIDIA Corporation\PhysX\Common; d:\programs\php_5.3.0\;C:\WINDOWS\system32; C:\WINDOWS;C:\WINDOWS\System32\Wbem; C:\Programme\Microsoft SQL Server\90\Tools\binn\; C:\Programme\texlive\2008\bin\win32; D:\程序\TortoiseSVN\bin; D:\程序\doxygen\bin; d:\程序\Graphviz2.24\bin; D:\programs\Liquid Technologies\Liquid XML Studio 2009\XmlDataBinder7\Redist7\cpp\win32\bin;
    • C:\Programme\Gemeinsame Dateien\DivX Shared\; D:\程序\MATLAB\R2007b\bin; D:\程序\MATLAB\R2007b\bin\win32; C:\Programme\TortoiseGit\bin; D:\程序\Git\cmd; C:\Programme\NVIDIA Corporation\31ctk\bin; d:\程序\.bin; D:\程序\OpenVPN\bin; d:\programs\.bin\programming_dll; D:\programs\libraries\qt-win-opensource-src-4.5.2\bin; d:\programs\pstoedit
    • 我也尝试过使用 git bash 和 copSSH(而不是 /bin/bash):/cygdrive/d/programs/Git/bin/sh.exe 它也失败了:(。我不能在腻子(ls,git --version 等)中做任何事情,我根本无法结帐:(。顺便说一句,我如何添加换行符或使用格式作为回复?
    • 最好调整我们的心智模型,将CopSSH环境分离为一台单独的机器。你在那里做的任何事情都是 Cygwin。因此,如果您想调整权限,请使用 CopSSH 开始菜单中的 bash 提示符。当您为 ssh URL 提供路径时,您为 cygwin 模型提供了路径。在 CopSSH bash 中键入“mount”以查看哪个路径对应于哪个目录或驱动器。如果你可以通过 ssh 进入你的机器,你可以尝试使用路径来查看东西在哪里。为了弄清楚是什么,您甚至可以尝试将 CopSSH 移动到不同的(虚拟)机器上,直到您掌握映射。
    【解决方案2】:

    请试试这个格式

    git clone gituser@sshserver:myapp.git
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 2018-05-03
      • 2017-10-02
      • 2012-02-17
      • 2011-12-27
      • 2019-12-14
      • 1970-01-01
      相关资源
      最近更新 更多