История:
Я разрабатывал RoR-приложение и на моем рабочем столе, и на ноутбуке. Было довольно удобно фиксировать изменения, сделанные на другом, подталкивать их к github, fetch & merge на другом.
Отправной точкой является вот это: Я зафиксировал последние изменения на моем рабочем столе, толкнул их на github, а затем извлек и объединил их в свой ноутбук. Затем я сделал несколько коммитов на ноутбуке, а затем отправил их на github. Взял изменения, слил их с моим рабочим столом (с --no-ff). ТАКИЙ, случился вероятный источник всех неприятностей: Я вернул рабочий стол, чтобы сделать коммит там, где он был до последнего fetch & merge. Заставил его немного поработать с разработками, совершил коммит, подтолкнул к github. В ноутбуке я также сделал реверс, хотя я вернул его на коммит, который был сделан где-то между последним извлечением из github'а, извлек снова и объединил их. Некоторые сообщения об ошибках пришли после возвращения и ноутбука, и рабочего стола, но все работало довольно хорошо, и я продолжил работать на обеих машинах.
До сих пор. Я пытался перетащить свой ноутбук на github, что давало следующие результаты:
Counting objects: 106, done.
error: unable to find 5a2a4ac...
error: unable to find bc36923...
error: unable to find ecb0d86...
error: unable to find f76d194...
error: unable to find f899df7...
Compressing objects: 100% (64/64), done.
fatal: failed to read object 5a2a4ac... : Invalid argument
error: failed to push some refs to 'git@github:username/repo.git'
Итак, вопрос в том, что именно здесь произошло?
EDIT: Кажется, из-за того, что я приостановил свой ноутбук и переместил его с места на место в таком состоянии, жесткий диск каким-то образом испортился. Вывод fsck недоступен, потому что мы работали над проблемой и продолжали работать, но IIRC некоторые ветки и коммиты висели на волоске, включая тот коммит, который git не смог прочитать. - Teemu