Git:推送到远程服务器失败,'REPOSITORY_PATH'不是git命令

时间:2010-03-31 04:01:28

标签: git ssh

我在Windows XP上使用Git和TortoiseGit, 我在Windows Vista 64位版本上有一个远程裸存储库。

当我尝试将本地文件推送到远程裸存储库时,我收到以下错误消息。

git.exe push    "origin" master:master

git: '/Git_Repository/.git' is not a git command. See 'git --help'.

fatal: The remote end hung up unexpectedly

任意URL为:username @ serverip:/Git_Repository/.git

在执行clone / fetch / pull时,相同的任意URL工作正常。

从远程机器中的本地目录访问此裸存储库也没有问题,所以我相信我的路径有问题。

我可以正确地推送/拉取GitHub,但我使用的是GitHub提供的URL。

有人知道我的配置有什么问题吗?

这是我的远程.git / config

[core]
repositoryformatversion = 0
filemode = false
bare = true
logallrefupdates = true
ignorecase = true
hideDotFiles = dotGitOnly

这是我当地的.git / config

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin"]
fetch = +refs/heads
url = username@serverip:/Git_Repository/.git
[branch "master"]
remote = origin
merge = refs/heads/master

我修改了网址以使其更精确,但仍显示相同的错误

更重要的是,无论我在serverip之后输入什么内容,它仍会显示相同的错误消息

如果网址为

  

ssh:// user @ server ip / Git_Repositorywrongname / .git

然后是错误消息

  

git:'/ Git_Repositorywrongname /.git'不是git命令。见'git --help'。

当用户连接到远程存储库时,执行的git命令来自SSH中的bin目录。所以我认为我的SSH配置有问题,这就是为什么我可以在远程机器的本地/本地正常进行git操作。

我按照http://code.google.com/p/tortoisegit/wiki/HOWTO_CentralServerWindowsXP中的指南进行了操作,并链接了4个命令

我错过了什么吗?

感谢您的阅读

3 个答案:

答案 0 :(得分:2)

解决!

在本地运行此命令:

git config --global remote.origin.receivepack "git receive-pack"

然后在本地仓库里面运行

git push origin master

或者,您可以将recieveoack命令附加到每次推送

git push --receive-pack='git receive-pack'

答案 1 :(得分:0)

尝试明确指定协议(此处为ssh),避免在user @ host部分和本地路径之间使用':'(查看git fetch man page中描述的URL):

url = ssh://username@serverip/C:/Git_Repository/.git

换句话说,避免scp syntax这种路径。

答案 2 :(得分:-1)

怎么样

git push file:///\\<machine-ip>/<share-remote-repo>/