我遇到远程git repo和本地repo(使用SmartGit)的问题。
我正在通过ssh在我的服务器上创建远程仓库:
> cd ~
> git init repo.git
> cd repo.git
> touch readme
> git add .
> git commit -m "Initial commit"
从这里一切看起来都很完美。现在我正在尝试使用带有命令
的Smartgit克隆repossh://user@server:22/~/repo.git
一切都克隆得很好。我在自述文件中进行了更改,保存并尝试提交并推送并获取错误:
The remote end hang up unexpectedly
git: '~/repo.git' is not a git command. See 'git --help'
我做错了什么? 谢谢。
答案 0 :(得分:2)
使用:
GIT_TRACE=2 git push origin master
看看调试问题的情况。
更新
正在尝试git-receive-pack
尝试以下操作:
git config --global remote.origin.receivepack "git receive-pack"
然后再次推动。
您可以尝试的其他事项:
在远程服务器上设置一个裸仓库:
git init --bare
然后尝试克隆并推送它。
答案 1 :(得分:1)
我建议使用完整路径而不是主页快捷方式(〜),例如git clone ssh://user@server/home/tuergeist/repo
这适用于我在Linux上,也适用于WindowsXP中的git bash。
你也应该忽略.git
扩展,这可能会混淆你的工具,因为它需要一个裸存储库。 (但我不确定)
答案 2 :(得分:0)
您无需指定端口22;这是SSH的默认端口。此外,如果您指定user@server:path
,则默认使用SSH。
尝试使用...进行克隆
user@server:~/repo.git
代替。