GIT:克隆工作,远程推送不。 通过copssh远程存储库

我遵循Tim Davis的指导“在Windows上安装了msysgit-server-with-copssh”,我现在正在学习如何使用git命令,遵循Jason Meridth的指南,并且我设法获得了所有的东西工作正常,但现在我无法通过push命令。

我已经把服务器和客户端设置在同一台机器上(现在),win7-x64。

以下是关于如何设置的一些信息:

CopSSH Folder     : C:/SSH/
Local Home Folder : C:/Users/rvc/
Remote Home Folder: C:/SSH/home/rvc/          # aka /cygdrive/c/SSH/home/rvc/
git remote rep    : C:/SSH/home/rvc/myapp.git # empty rep

'/SSH/home/rvc/.bashrc'和'Users / rvc / .bashrc':

export HOME=/cygdrive/c/SSH/home/rvc
gitpath='/cygdrive/c/Program Files (x86)/Git/bin'    
gitcorepath='/cygdrive/c/Program Files (x86)/Git/libexec/git-core'
PATH=${gitpath}:${gitcorepath}:${PATH}

所以,克隆工作(所有的事情都是通过“Git Bash here”完成的:P):

rvc@RVC-DESKTOP /c/code
$ git clone ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git
Initialized empty Git repository in C:/code/myapp/.git/
warning: You appear to have cloned an empty repository.

rvc@RVC-DESKTOP /c/code
$ cd myapp

rvc@RVC-DESKTOP /c/code/myapp (master)
$ git remote -v
origin  ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git (fetch)
origin  ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git (push)

然后我创建一个文件:

rvc@RVC-DESKTOP /c/code/myapp (master)
$ touch test.file

rvc@RVC-DESKTOP /c/code/myapp (master)
$ ls
test.file

尝试推它,并得到这个错误:

rvc@RVC-DESKTOP /c/code/myapp (master)
$ git add test.file

rvc@RVC-DESKTOP /c/code/myapp (master)
$ GIT_TRACE=1 git push origin master
trace: built-in: git 'push' 'origin' 'master'
trace: run_command: 'C:Usersrvcbinplink.exe' '-batch' '-P' '5858' 'rvc@192.1
68.1.65' 'git-receive-pack '''/SSH/home/rvc/myapp.git''''
git: '/SSH/home/rvc/myapp.git' is not a git command. See 'git --help'.
fatal: The remote end hung up unexpectedly

“git:'/SSH/home/rvc/myapp.git'不是git命令,参见'git --help'。” .. 什么?!

编辑: RAAAGE!

我又遇到了同样的问题,但现在用ssh:

rvc@RVC-DESKTOP /c/code/myapp (master)
$ GIT_TRACE=1 git push
trace: built-in: git 'push'
trace: run_command: 'ssh' '-p' '5858' 'rvc@192.168.1.65' 'git-receive-pack '''/
SSH/home/rvc/myapp.git''''
git: '/SSH/home/rvc/myapp.git' is not a git command. See 'git --help'.
fatal: The remote end hung up unexpectedly

我尝试过GUI推送,并显示相同的消息。

git: '/SSH/home/rvc/myapp.git' is not a git command. See 'git --help'.
Pushing to ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git
fatal: The remote end hung up unexpectedly

这里是目前的.bashrc:

C: Users rvc.bashrc(我认为这只用于cygwin / git bash):

export HOME=/c/SSH/home/rvc

gitpath='/c/Program Files (x86)/Git/bin'

gitcorepath='/c/Program Files (x86)/Git/libexec/git-core'
export GIT_EXEC_PATH=${gitcorepath}

PATH=${gitpath}:${gitcorepath}:${PATH}

C: SSH home rvc.bashrc(..并在git通过ssh连接到“远程”服务器时使用):

export HOME=/c/SSH/home/rvc

gitpath='/cygdrive/c/Program Files (x86)/Git/bin'

gitcorepath='/cygdrive/c/Program Files (x86)/Git/libexec/git-core'
export GIT_EXEC_PATH=${gitcorepath}

PATH=${gitpath}:${gitcorepath}:${PATH}

编辑2:一些额外的信息:

rvc@RVC-DESKTOP /c/code/myapp (master)
$ ssh -p 5858 rvc@192.168.1.65 git-receive-pack /SSH/home/rvc/myapp.git
git: '/SSH/home/rvc/myapp.git' is not a git command. See 'git --help'.


编辑3:

rvc@RVC-DESKTOP /c/code/myapp (master)
$ git push --receive-pack='git receive-pack' ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git --a
ll
Counting objects: 3, done.
Writing objects: 100% (3/3), 202 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git
 * [new branch]      master -> master

这有没有把戏?

git push正在运行'git-receive-pack',它应该是'git receive-pack'?

我的git版本是'git version 1.7.0.2.msysgit.0'


愚蠢的修复(这改变/SSH/home/rvc/.gitconfig):

rvc@RVC-DESKTOP /c/code/myapp (master)
$ git config --global remote.origin.receivepack "git receive-pack"

rvc@RVC-DESKTOP /c/code/myapp (master)
$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 246 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git
   680f32e..2da0df1  master -> master

找到答案...

GIT_SSH

If this environment variable is set then git fetch and git push will

当他们需要连接到远程系统时,使用这个命令而不是ssh。 $ GIT_SSH命令将只有两个参数:URL中的username @ host(或主机)和要在该远程系统上执行的shell命令。

To pass options to the program that you want to list in GIT_SSH you

将需要将程序和选项包装到shell脚本中,然后将GIT_SSH设置为引用shell脚本。

Usually it is easier to configure any desired options through your

个人.ssh / config文件。 有关更多详细信息,请参阅您的ssh文档。

我只需要从Windows环境变量中删除GIT_SSH var。

我已经设置好了,因为我遵循Tim Davis的指导,但是没有使用TortoiseGit,并且指南指出将变量指向TortoisePlink(步骤4.4),所以我认为我必须指向plink.exe:P。 好吧..转移到下一个问题......


谢谢! 我也遇到了错误

git: '/pathToRepo/myRepoName.git' is not a git command See 'git --help'.
fatal: The remote end hung up unexpectedly

git config命令为我工作。

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

我正在运行MSysGit-1.7.3.1

链接地址: http://www.djcxy.com/p/45235.html

上一篇: GIT: clone works, remote push doesn't. Remote repository over copssh

下一篇: can't find repository