Git和SSH - 如何知道要使用的地址?

时间:2013-11-06 02:48:34

标签: windows git ssh

我需要在生产服务器中设置一个git存储库,这样我就可以上传我的所有提交。所以,这些是我遵循的步骤:

Production Server(Windows Server 2008)

  1. 已安装Git
  2. 在inetpub / wwwroot
  3. 创建了一个空存储库
  4. 已安装的CopSSH
  5. 创建了新的用户帐户
  6. 使用CopSSH启用用户
  7. 将新用户的默认目录更改为存储库地址
  8. 设置环境变量以读取Git命令
  9. 开发(Windows 7 + Netbeans)

    1. 已安装Git
    2. 在我的项目
    3. 的位置创建了一个存储库
    4. 将项目的所有文件添加到存储库
    5. 现在,我需要将我的开发项目上传到prod。首先,我要检查我指向的SSH默认目录是否为存储库:

      $ git ls-remote ssh://user@server/
      fatal: '/' does not appear to be a git repository
      fatal: Could not read from remote repository
      
      Please make sure you have the correct access rights
      and the repository exists.
      

      我尝试添加文件夹名称," .git",foldername.git,所有内容,我收到同样的错误。

      我在哪里遇到这个问题?先谢谢你。

      P.S。我已经测试了新的默认目录,它指向服务器中的空存储库,因此它正在工作。

      编辑:我试过这个:

      $ git ls-remote user@host:.git
      user@host's password:
      
      $_
      

      我没有输出。那可以吗?

2 个答案:

答案 0 :(得分:1)

您说服务器上的git存储库位于/(例如,您应该有一个/.git目录)。由于这可能不是真的,我建议你通过ssh连接到服务器并运行pwd(或它的Windows等价物)来找到你的主目录所在的位置,然后获取相对路径你的存储库。

比如说,如果在登录服务器后立即运行pwd,则C:\users\my_user并且您的git存储库位于C:\users\my_user\git\my_project,请使用ssh://user@server:git/my_project作为URL。 :表示主目录的相对路径。

您也可以使用绝对路径,例如在ssh://user@server/c/users/my_user/git/my_project中,或者Windows决定命名您的C:分区:)

答案 1 :(得分:1)

当您使用ssh传输时,您的语法会尝试访问Copssh安装的根目录,例如:如果您在c:\ copssh安装了Copssh,那么您的根目录(/)就是同一个目录。

您的命令 git ls-remote ssh:// user @ server / 尝试访问该目录。

尝试类似

的内容

git ls-remote ssh:// user @ server / home / user *(c:\ copssh \ home \ user)或

git ls-remote ssh:// user @ server / cygdrive / d / mygit 如果您的存储库位于d:\ mygit)

如果你们都想创建一个基于Windows的Git存储库,你可以考虑坚持使用功能齐全Gitwinfree edition。虽然这是Git on Cygwin并且免责声明:我是开发人员。