4

我在 Solaris 服务器上运行 GIT。

我从 Windows 机器上安装了 cygwin 以尝试克隆服务器上托管的存储库。

我执行以下操作:

$ git clone username@server:project.git
ksh:git-upload-pack:未找到

所以我尝试

$ ssh 用户名@server echo \$PATH
/usr/bin

似乎 git 不在 /usr/bin/ 中,而是在 /usr/local/bin/ 中。我尝试在服务器上的主目录上更改 .bashrc 中的 PATH 以添加 /usr/local/bin/ ...但它似乎不起作用。

我究竟做错了什么 ?

4

3 回答 3

11

~/.bashrc由非登录 shell 读取,但只能由bash读取,并且您的服务器使用ksh
~/.profile是(我认为)通用初始化文件,但它只能由登录 shell读取。
~/.kshrc是 ksh 读取的典型启动文件,但前提是设置了ENV环境变量(但请参阅 ssh_config 手册页中的 SendEnv)。


如果您无法在远程设置 PATH,您也可以随时将--upload-pack=/usr/local/bin/git-upload-pack选项传递给“git clone”(然后设置配置变量)。remote.origin.uploadpack当然remote.origin.receivepack,如果它找不到 git-receive-pack。

于 2009-10-21T22:03:11.663 回答
4

听起来你在 Solaris 机器上的 shell 是 ksh 而不是 bash,这就是你的 .bashrc 没有被读取的原因。尝试将更改放入 .profile

于 2009-10-21T21:27:43.943 回答
0

我必须在 .profile 中将 /usr/local/bin 添加到我的路径中,才能在 solaris 上获取它(并让 git upload-pack 工作)。我一直认为是我的盒子配置不好,但也许不是这样......

于 2009-10-21T21:24:46.570 回答