GIT:推送到远程服务器时“git-upload-pack:command not found”

问题描述:

因此,我使用GIT,试图将代码推送到远程服务器。GIT:推送到远程服务器时“git-upload-pack:command not found”

  • 在共享的unix托管,我不允许有我自己的环境变量(阻止SSH帐户)和没有sudo访问。
  • 设法在我的/ home成功安装的git/
  • 试图把代码放到服务器上的回报:庆典:混帐上载包装:命令未找到
  • $ PATH变量设置 - 因为Git是安装在我的/ home/
  • 把事情的工作,我不得不使用下面的clone命令:

    混帐克隆-u /家庭/斌/混帐上传包[email protected]:mygitfolder

  • 本地机器上的相同版本的git/remote erver(1.7.0.4)

所以从我所知,我需要基本上是:

  • 找到一种方法每次我推到服务器时自动换行我的环境变量 或
  • 指定我的git - 接收包的路径,同时推动服务器

我知道我可以创建一个钩。因为我推,将生效,但还没有设法找到W¯¯这里/如何实施。

(我宁可不创建我的本地机器上的别名)

如果不能调整在远程端有效路径,那么你就必须从指定程序的位置您本地方。

当你发现,git clone可给予-u /path/to/git-upload-pack(或--upload-pack /path/to/git-upload-pack)。

git fetchgit pull接受--upload-pack /path/to/git-upload-pack(不-u,但是,因为这意味着这些程序别的东西)。他们还检查remote.<name>.uploadpack配置变量。

git push接受--receive-pack /path/to/git-receive-pack并检查remote.<name>.receivepack配置变量。

一旦你的资料库进行克隆,您可以使用配置变量记录的路径:

git clone -u /home/bin/git-upload-pack [email protected]:mygitfolder 
cd mygitfolder 
git config remote.origin.uploadpack /home/bin/git-upload-pack 
git config remote.origin.receivepack /home/bin/git-receive-pack 

然后你就可以推,获取,或拉而无需指定路径。


你说的“环境变量受阻[是]为SSH账户”。如果您的意思是sshdPermitUserEnvironment设置已关闭(意味着您的.ssh/authorized_keys文件中不能使用environment="PATH=/home/bin:/usr/bin:/bin"),那么您仍然可以通过shell初始化文件(例如.bashrc)修改默认PATH。

+1

A)这看起来不错,我离开我的终端,但会尽快尝试它B)是许可用户环境关闭sshd帐户 - 谢谢纠正:) – 2011-05-18 10:32:08

+0

得到了一些随后的错误,但现在所有修复! – 2011-05-18 11:34:03