符号链接上的git在我的repo上失败了

时间:2016-03-26 13:43:23

标签: git ssh

我在/opt/git/repo1.git//opt/git/repo2.git/等内部创建了一个repos的本地git用户。我设置了公钥auth,我可以通过ssh访问我的git repos,如下所示:git@ubuntu:/opt/git/repo1.git。当我设置它时,我在git的主目录中创建了一个指向repo1的符号链接:

ln -s /opt/git/repo1.git ~/

所以我起初我能够以git@ubuntu:repo1.git访问我的仓库,但突然它现在停止工作(不知道我的ubuntu盒子上有什么变化,可能只安装了一些更新)。当我尝试git pull

时,我收到了togise git的错误
git.exe pull --progress --no-rebase -v "origin"

fatal: 'repo1.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
and the repository exists.

我仍然可以使用git@ubuntu:/opt/git/repo1.git访问它,但为什么symlink的访问停止工作,我该怎么做才能调试它?作为一个侧节点,/ home / git / redpo.git中的符号链接仍然存在,它指向正确的位置。我完全相信它曾经工作,因为当我克隆我在windows框上的repo时,我使用较短的符号链接克隆它,从那以后我做了一些拉动和推动,但突然一切都停止使用符号链接:我不能访问现有的仓库,我无法克隆新的副本。

编辑:我还注意到我仍然可以使用符号链接进行本地git克隆,但只有当我从本地终端执行此操作时(例如,如果我尝试从ssh会话执行此操作,则会失败,也许是因为ssh检测到我正在尝试第二次进行ssh登录)

1 个答案:

答案 0 :(得分:0)

我一直想弄明白,似乎我找到了这种奇怪行为的原因。出于某种原因,当使用putty时,它开始以我的本地用户名登录,而不是名为git的用户。

在我的Windows上,我使用jdoe作为我的本地用户名,而我的ubuntu拥有相同的用户。所以,当我在我的ubuntu上的repo1.git里面添加/home/jdoe符号链接时,一切都开始在togise git中运行。

这种行为的原因似乎是乌龟git使用保存的putty会话登录到远程而不是使用来自选美的键。当我删除已保存的putty会话并创建一个以git@ubuntu登录的新会话时,togise git也开始工作而不在/home/jdoe

中创建符号链接

编辑:在挖掘详细信息后,似乎失败的原因在于[TortoiseGit] Plink.exe:

Plink: command-line connection utility
Release 0.67
Usage: plink [options] [user@]host [command]
       ("host" can also be a PuTTY saved session name)

在我的案例中,保存的putty会话被称为ubuntu,就像主机名一样。这正是我得到这个问题的原因。