我在本地服务器上设置了一个gitstack repo,我还注册了一个免费的github帐户,只是为了看看它是什么样的。
但是当我尝试从我的本地存储库或git hub存储库克隆存储库时,我收到此错误:
Transport Error
Cannot List the available branches
Reason:
Exception caught during execution of ls-remote command
这是什么意思,我该如何解决这个问题?
答案 0 :(得分:1)
在Egit遇到这个问题后,我回到使用GitBash尝试创建,推送和拉取存储库。然后我得到了这个错误:
Git Bash错误:
fatal: http://xx.xx.x.xxx/mjtest.git/info/refs not found: did you run git update-server-info on the server?
Egit错误:
Transport Error
Cannot List the available branches
Reason:
Exception caught during execution of ls-remote command
我发现GitBash和Egit错误的解决方案是创建一个名为git-daemon-export-ok
的空文件,并将其直接放入服务器上存储库的xxxx.git
根目录。
解决方案解释:
我在gitstack中设置了一个名为mjtest
的存储库,并为自己创建了一个新的用户名和密码,并将自己添加到具有读写访问权限的存储库中。
这就是我在GitBash中所做的事情:
我设置了我的本地仓库:
git config --global user.name "XXXXXXXX"
git config --global user.email XXXXXXXX
mkdir ~/mjtest
cd ~/mjtest
git init
touch README
然后我创建了空文件:
touch git-daemon-export-ok
现在我们有一个本地存储库,其中包含一个名为README
的文件和我们的git-daemon-export-ok
文件。
我们现在需要复制git-daemon-export-ok
文件并将其直接放入服务器中的mjtest.git
文件夹中。
完成后,git-daemon-export-ok
文件可以从本地存储库中删除,因为它只需要在服务器上。
添加,提交和推送:
git add README
git commit -m 'first commit'
git remote add origin http://XX.XX.X.XXX/mjtest.git
git push origin master
这应该可以,你应该能够进入你的gitstack服务器并看到你的第一次提交。
然后我回到Egit并克隆了http://XX.XX.X.XXX/mjtest.git
存储库并且它有效。
现在,在GitBash和Egit中推送和拉动工作!
答案 1 :(得分:0)
请看一下 Can't clone remote git repository with EGit有几个可能的原因。在我必须处理该错误消息的情况下,它是在Eclipse中给出的错误的.ssh目录或者在ssh目录中完全缺少SSH密钥。