我在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个命令
我错过了什么吗?
感谢您的阅读
答案 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>/