1

我在 git 存储库与我们的 LAN 网络上的团队合作时遇到了麻烦。

推送到我的裸存储库时出现此错误。

我们拥有的基础设施都是在 Windows 上的,我们无法更改为 linux。

我在 Windows 上使用 git,我设法在服务器上启动了一个裸存储库,然后从另外两台机器上提取存储库,进行更改,提交它们并推送到裸存储库。

此时一切都很好,但我们希望有一个命令来部署我们的开发。

我发现我需要一个接收后挂钩。

所以我做了并创建了 post-receive 钩子,看起来像这样:

#!/bin/bash
git --work-tree=C:/Users/Admin/Desktop/fertitest
--git-dir=C:/Users/Admin/Desktop/fertitest.git checkout -f

我将完全控制权限添加到允许在 .git 一个目录和我想要在推送命令后部署代码的工作目录上向服务器推送的用户。

之后,我们可以制作我们想要的存储库的副本

git clone //SERVER/fertitest.git

添加文件并提交

git add *
git commit -a -m "first stage"

但是当我们试图推动

git push origin master

我们收到下一个错误:

Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 263 bytes | 263.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
error: remote unpack failed: unable to create temporary object directory
To //CENTRAL/Users/Administrador/Desktop/fertipruebas.git
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 
'//SERVER/fertitest.git'

我被困在这一步,我找不到错误在哪里,我试图找到这个,但我发现的一切都是在 Linux 环境中,并且是权限错误或其他东西,而不是解包器错误。

知道我可以尝试什么吗?

4

1 回答 1

1

“无法创建临时目录”错误意味着由于某种原因,远程机器无法创建在推送期间隔离对象所需的临时对象目录。这通常意味着在该层次结构中创建一个或多个目录的权限失败。

您应该查看调用用户的权限,以确保他们有权在 Git 存储库中创建目录。当然,根据远程服务器是 Unix 机器还是 Windows 机器,您将如何做到这一点会有所不同。

于 2019-01-25T00:10:38.203 回答