История:
Я разрабатываю RoR-приложение как на своем рабочем столе, так и на ноутбуке. Было очень удобно совершать изменения, сделанные на другом, подтолкнуть их к github и получить и слить на другое.
Отправной точкой является следующее: я совершил последние изменения на своем рабочем столе, подтолкнул их к github, а затем извлек и объединил их в свой ноутбук. Затем я сделал несколько коммитов на ноутбуке и нажал на github. Внес изменения, объединенные с моим рабочим столом (с --no-ff). ТОГДА произошел вероятный источник всех вред: я вернул рабочий стол для фиксации, где он был до последней выборки и слияния. Сделал некоторые разработки с ним, совершенные, подтолкнули к 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 '[email protected]:username/repo.git'
Итак, вопрос в том, что именно произошло здесь?
EDIT: Кажется, из-за приостановки моего ноутбука и перемещения его с места на место в этом состоянии каким-то образом напортачил жесткий диск. Выход fsck недоступен, потому что мы работали над проблемой и продолжали работать, но IIRC некоторые ветки и коммиты были свисающими, в том числе коммит, который git не удалось прочитать. - Teemu