将本地仓库推送到共享主机的裸仓库

3

好的...这是问题。当我尝试将本地仓库推送到服务器上的裸仓库时,我会收到以下错误:

Counting objects: 225, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (220/220), done.
Writing objects: 100% (225/225), 391.31 KiB, done.
Total 225 (delta 25), reused 0 (delta 0)
git: 'index-pack' is not a git-command. See 'git --help'.
error: index-pack exited with error code 1
error: unpack failed: index-pack abnormal exit
To user@ipaddress:/home/user/public_html/dir.git
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'user@ipaddress:/home/user/public_html/dir.git'

现在,当我尝试推送大型代码库时,只会收到这个错误消息。当我把单个文件推送到不超过三个文件的代码库时,它可以无缝工作。怎么回事?!?

注意:我使用的是共享网络主机,但我可以通过SSH访问服务器。如果我漏掉了您需要的任何信息,请告诉我,我可以发布相关信息......

感谢任何帮助!


2
远程主机上安装了哪个版本的git?你正在运行哪个版本的git?git --version应该可以回答这个问题。 - larsks
你的远程机器上是否在PATH中包含了Git可执行文件?请务必在非交互式登录时进行检查。 - MikeK
2个回答

0

这意味着远程机器上找不到git-index-pack。它是否在您的路径中?尝试通过ssh命令运行此命令:

git --exec-path

换句话说,运行以下内容:
ssh user@hostname git --exec-path

然后看看是否有效。


0

有类似的东西,包括

error: unpack failed: index-pack abnormal exit

原来我在服务器上的共享代码库中设置了一些奇怪的权限——组没有对所有内容进行写入权限。一个简单的
chmod -R g+w <repo>

解决了问题。

还执行了一项操作。

chown -R :<group> <repo>
find <repo> -type d -exec chmod g+s {} \;

为了确保没有设置错误的组


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