Подтвердить что ты не робот

Git push не удается выполнить github: не удалось прочитать объект

История:

Я разрабатываю 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

4b9b3361

Ответ 1

Я столкнулся с такими проблемами.

Вместо того, чтобы тратить часы на устранение и устранение этих проблем, мое "решение" обычно принимает код, который я хочу, копирую в новый каталог, удаляю файлы .git, а затем создаю для него новый github, а затем подключите их как обычно.

Хотя это не может быть конкретным ответом на детали, которые вы поднимаете, я обнаружил, что может существовать ряд способов, с помощью которых могут возникать проблемы git/github, а не желание, чтобы я был экспертом git (это происходит, но требуется время), я делаю это и продолжаю свою разработку.

Ответ 2

Проблема заключается в том, что вы пытаетесь читать объекты, которые не являются частью вашего дерева. Они существуют, но они остались сиротами. Однако git позволяет объединить один проект в другой, так что вы можете сохранить свои коммиты без повторного запуска, что-то вроде следующего:

  • git удаленный add -f somename git://somegitplace.com/user/some.git

  • git merge -s ours --no-commit somename/master

  • git read-tree --prefix = ext/somename -u somename/master

  • git commit -m 'external merge'

  • git pull -s подзаголовок somename master

Надеюсь, что это поможет. Дайте мне знать, если нет, и мы можем снова напасть на него.