Git для Windows удаленный отклоненный мастер -> мастер (ошибка распаковщика)

У меня проблемы с git-репозиторием для работы с моей командой в нашей локальной сети.

Я получаю эту ошибку при отправке в мой голый репозиторий.

У нас есть вся инфраструктура на Windows, и мы не можем перейти на Linux.

Я использую git для Windows, и мне удалось запустить пустой репозиторий на сервере, а затем вытащить репозиторий с двух других машин, внести изменения, зафиксировать их и перенести в пустой репозиторий.

На данный момент все хорошо, но мы хотим иметь команду для развертывания нашей разработки.

Я нахожу, что мне нужен крюк после получения.

Итак, я сделал и создал хук post-receive и выглядел так:

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

Я добавляю разрешение на полный доступ пользователям, которым разрешено делать push на сервер в обоих каталогах.git и рабочем, где я хочу развернуть код после команды push.

После этого мы можем сделать копию нашего хранилища, где мы хотели с

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 и было ошибками разрешения или чем-то еще, а не ошибкой распаковщика.

Есть идеи, что я могу попробовать?

1 ответ

Решение

Ошибка "невозможно создать временный каталог" означает, что по какой-то причине удаленный компьютер не может создать каталог временных объектов, который необходим для помещения объектов в карантин во время отправки. Обычно это означает, что разрешение на создание одного или нескольких каталогов в этой иерархии не удалось.

Вам следует взглянуть на разрешения вызывающего пользователя, чтобы убедиться, что у него есть разрешение на создание каталогов в репозитории Git. Как вы это сделаете, конечно, зависит от того, является ли удаленный сервер машиной Unix или Windows.

Другие вопросы по тегам