Я использую ubuntu 14.10 (64 бит), git версии 2.1.0. Это хранилище, которое существует уже несколько лет, и у него недавно возникли проблемы.Как мой git-репозиторий продолжает расти?
Иногда я буду менять ветки, редактировать файл и набирать статус git. Он покажет кучу файлов как «измененных», которые на самом деле вообще не изменились.
Если я печатаю следующее:
$ git commit -am "fixed sms message"
Я получаю ошибки как это:
error: short read No such file or directory
error: globalstatic/images/console/avatar_f.gif: failed to insert intodatabase
error: unable to index file globalstatic/images/console/avatar_f.gif
fatal: updating files failed
Если я не делаю ничего другого, кроме нажмите клавишу со стрелкой вверх и нажмите клавишу ВВОД еще раз, я Вы получите ошибку в следующем файле, который появился в git status
, который никогда не менялся. Я могу это сделать, пока не исчерпал список файлов в git status
, который не изменился, и тогда он будет зафиксирован правильно.
git fsck --full
сообщает, что он обнаружил проблемы, но на самом деле ничего не исправляет. Я просто должен продолжать пытаться совершить, пока это не сработает. Вот вывод git fsck --full
, когда он дает мне вопросы:
Checking object directories: 100% (256/256), done.
Checking objects: 100% (120625/120625), done.
dangling tag c7539416829fb0748bc32dda3beb386bac46ea9a
dangling blob 88a0700db2a75e6ea2b14b9a5af15ece63a80805
dangling blob f4c664b0044f3d5efff1148717dc68b940e08574
dangling blob 1bf6185091177fd5a496f5bf031f4d666fec92da
dangling commit fee4bdcc078789a3745aa1311f128a6b61a81736
dangling blob 9f14e68da29d49895b1ea303ed33cb390fc56b76
dangling blob 784a02e974b81f35952fb7c31bf2dcb1a7bfeda8
dangling blob 9e92d6cf395206152123f9a29edb95652114fd34
dangling commit 1294f626dcb76cafa560f65792517655fb8a52ae
dangling blob bceb1adde285e71109723211a1bcb5b0fa126681
dangling tag 19f4be8e7b53465b13359bc4350b5e87c5942560
dangling blob 93f96a3b5e995032a50723af796dab9ae36fb974
dangling blob a25bdfab82fef920935478ee2cefe4dc2e81bbf6
dangling blob af7187350341f3d7795d35cc1f0cee78eb9f9fdf
dangling blob e2a1db9e3d3d438c8b03cb6254ca492e505be6f8
Если я запускаю его более чем один раз, я получаю такое же сообщение. Ничего не меняется.
Что происходит?
Время проверки файловой системы и дисков, я думаю ... Не только репо. Тем более, что он жалуется на файлы в рабочем каталоге (в дополнение к проблемам 'git fsck'). – twalberg
О какой файловой системе это хранится? Это синхронизация Dropbox или что-то в этом роде? – jszakmeister
На самом деле, глядя на него больше, это не похоже на то, что ваше репо повреждено. Оборванные объекты могут быть результатом ветвей, которые больше не существуют, или от восстановления вашей работы. Оборванный тег немного подозрительный, но может быть, потому, что вы удалили тег где-то на этом пути. Что, кажется, происходит, так это то, что Git не будет связываться с репо. Вы можете попробовать добавить 'GIT_TRACE = 2' в начало вашей командной строки, чтобы получить дополнительную информацию о том, что происходит. – jszakmeister