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

4
我正在使用Windows XP上的TortoiseGit与Git配合使用, 我有一个位于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
在克隆/提取/拉取时,同样的任意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

我编辑了URL以使其更精确,但仍显示相同的错误。
更重要的是,无论我在serverip后输入什么,它仍然显示相同的错误消息。
如果URL为
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个命令。
我错过了什么吗?
感谢您的阅读。

显示.git/config -- 里面肯定有一些很奇怪的东西。 - Dustin
从URL中删除“.git” - ordnungswidrig
我正在使用Cygwin连接到Linux,遇到了相同的问题。我将远程仓库创建为共享模式,并能够在本地克隆它。但现在我无法将其推送回中央服务器。即使是在仓库内部执行基本的“git push”命令也会出现完整的错误提示:“git: '/path/to/remote/repo.git/' 不是一个 git 命令。请参阅 git --help。” - Eddie
3个回答

1

问题已解决!

在本地运行此命令:

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

然后在本地存储库内运行

git push origin master

或者你可以将接收确认命令附加到每个推送中

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

0

尝试明确指定协议(这里是ssh),避免在用户@主机部分和本地路径之间使用“:”(请参阅{{link1:git fetch man page}}中描述的URL):

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

换句话说,避免在这种路径中使用scp语法

我尝试了ssh url,但结果仍然相同。 git: '/Git_Repository/.git' 不是一个git命令。请参阅 'git --help'。 如果目录位于C:/下,则ssh url的正确用法应为ssh://username@serverip/Git_Repository/.git。 - Judarkness

-1
关于什么呢
git push file:///\\<machine-ip>/<share-remote-repo>/

致命错误:'//<serverip>/Git_Repository/.git' 似乎不是一个 git 仓库。 它无法工作... :( 我认为这个 URL 是用于本地目录,但还是谢谢。 - Judarkness
你需要分享远程仓库,并尽量不要在路径末尾添加 .git。 - gath
我尝试从路径末尾删除 .git,但它没有起作用。 - Judarkness

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接