Git commit на Windows (Cygwin) не работает. - PullRequest
7 голосов
/ 29 июля 2011

У меня установлена ​​Cygwin на Windows 7. Git работал отлично до тех пор, пока несколько дней назад коммиты просто перестали работать.Вот журнал совершенно нового репо:

wt@CO /cygdrive/u/Projects
$ mkdir Temp

wt@CO /cygdrive/u/Projects
$ cd Temp/

wt@CO /cygdrive/u/Projects/Temp
$ touch Hello.txt

wt@CO /cygdrive/u/Projects/Temp
$ git init
Initialized empty Git repository in /cygdrive/u/Projects/Temp/.git/

wt@CO /cygdrive/u/Projects/Temp
$ git add .

wt@CO /cygdrive/u/Projects/Temp
$ git commit -m "hi"
error: invalid object 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 for 'Hello
.txt'
error: Error building trees

Я чертовски вычеркнул это из Google, но безрезультатно.Что здесь происходит?

Ответы [ 4 ]

9 голосов
/ 27 августа 2014

Cygwin git, похоже, создает новые объектные файлы, используя метод "create-temp-file-then-hardlink-to-destination".Я думаю, что жесткое связывание сбивает с толку Cygwin!

Итог: решено с помощью:

git config --add "core.createobject" rename

(Моя установка - Cygwin git, работа над каталогом .git через samba)

2 голосов
/ 07 августа 2015

Проблема здесь в том, что метод Git по умолчанию для создания объектных файлов просто не работает на общих дисках Windows, и (в отличие от Git для Windows или msysgit) Git Cygwin только что использовал это значение по умолчанию.

До сегодняшнего дня - я сопровождающий Git для Cygwin - и я просто перестроил его, чтобы использовать другой метод, который работает на общих дисках (у него есть и другие недостатки, но мы мало что можем с этим поделать) , Если вы снова запустите Cygwin's setup-x86[_64].exe и загрузите последнюю версию Git (v2.4.5-3 или новее), вы должны снова обнаружить, что все работает.

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

2 голосов
/ 29 июля 2011

Используйте взамен Git для Windows .Git Cygwin начал спускаться некоторое время назад.У меня и моей команды возникало все больше проблем с течением времени, и, наконец, они просто поменялись.Имея полный порт Git для Windows (проект msysgit / Git для Windows), зачем мириться с неприятностями и явными нарушениями, которые идут с Cygwin Git?У нас не было ни одной проблемы с момента переключения.

0 голосов
/ 30 июля 2011

В вопросе говорилось, что репо работало, но их таинственно сломали. Кажется, ошибка указывает на проблему чтения файловой системы с внутренними объектами git tree. Глядя на /cygdrive/u, указывает, что это, скорее всего, подключенный сетевой диск.

Попробуйте запустить git на локальном диске, чтобы убедиться, что сетевой ресурс работает правильно.

К сожалению, у меня нет точной информации о том, что может вызвать сбой. Возможно, ваш общий сетевой ресурс не поддерживает функции файловой системы, которые, как ожидается, будет доступна git.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...