2016-01-05 2 views
1

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

В последнее время B пытался сделать git pull из-за происшествия, в результате чего многие ошибки «refs/tags/...» и «refs/heads/...» не указывают на действительный объект.

Поэтому он попытался получить свежий git clone и получил те же ошибки.

То же самое происходит в течение нескольких других пользователей, но не все, в том числе и себя (то есть все это прекрасно работает для меня.)

После попытки, описанные ниже, я пытался получить фактические исходные сообщения об ошибках от B, но все, что он был этот хвост длинный список, как сообщений:

... 
error: refs/tags/v4.3.0_rev2664 does not point to a valid object! 
error: refs/tags/v4.6.10 does not point to a valid object! 
fatal: failed to read object 0a628d61199464517a9baaa117092fdd73f2f362: Permission denied 
fatal: The remote end hung up unexpectedly 

git did not exit cleanly (exit code 1) (10515 ms @ 01/04/2016 12:35:17 PM) 

Таким образом, мы сделали некоторые исследования и нашел это:

Git refs/remotes/origin/master does not point to a valid object

Я выполнил шаги в этой ссылке в удаленном репозитории (после создания резервной копии), и все стало лучше для некоторых пользователей, но не для всех.

В настоящее время, когда B пытается git pull в его текущем хранилище он получает это сообщение:

fatal: loose object b8ddd20da1655b990e361c720c2ee2e500d94bad (stored in ./objects/b8/ddd20da1655b990e361c720c2ee2e500d94bad) is corrupt 

И когда он пытается git clone он получает это сообщение:

fatal: failed to copy file to 'C:\git_temp\v4/.git/objects/09/01785b71fddf0b5bcdb40e07dcd04f697d2576': Permission denied 

Теперь, когда я проверяю пульт папки хранилища, я обнаружил, что ./objects/b8/ddd20da1655b990e361c720c2ee2e500d94bad действительно существует, но ./objects/09/01785b71fddf0b5bcdb40e07dcd04f697d2576 нет.

Когда я делаю git cat-file -p в этих файлах, я нахожу, что они действительны в последнее время.

Как и прежде, git pull и git clone отлично работает для меня, и для L.

Я попросил D, чтобы сделать git clone из этого хранилища, и он получил кучу failed to stat .... предупреждений, но он продолжал создавать клонированный репозиторий.

Я нахожусь в недоумении, куда идти, чтобы решить эту проблему.

У B есть куча кода, чтобы толкать, что нам нужно как можно скорее.

+0

вы проверить права доступа к файлам на .git directorie и файлы ниже? Существуют ли различия в разрешениях пользователей между вами и B? –

+0

У всех пользователей есть одна и та же ОС? такая же версия git установлена ​​('git version')? – LeGEC

+0

Как устроено центральное репо (то, с кем вы клонировали)? – LeGEC

ответ

0

Ваша проблема выглядит как проблема с правом доступа.

Убедитесь, что у пользователя есть правильный доступ к папкам и файлам внутри общей копии репозитория git: из его системы, откройте git repo в проводнике файлов и проверьте, действительно ли он имеет доступ к папке objects, к 09/01785b71fddf0b5bcdb40e07dcd04f697d2576, что никакая папка или файл не появляется с блокировкой ...

Мое предложение: иметь доступ к этому общему репо с использованием одного и того же пользователя.

  • либо изменить подключение к общей папке, чтобы использовать один и те же общие для всех пользователей,
  • или иметь доступ к всем папке через соединение SSH, используя одну учетную запись пользователя. Это так же просто, как:

    git clone ssh://[email protected]:port/path/to/folder