我在/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
:
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登录)
答案 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
,就像主机名一样。这正是我得到这个问题的原因。