Как исправить плохой объект git tree - PullRequest
17 голосов
/ 25 января 2012

У меня есть локальная копия репозитория, к которому больше не привязан ни один пульт.Я пытаюсь вставить этот репозиторий в новый пульт, однако каждый раз, когда я получаю это сообщение:

error: Could not read 9eefe9305253b2c039a54cbc8aa22f7f8e6e8790
fatal: bad tree object 9eefe9305253b2c039a54cbc8aa22f7f8e6e8790

Я читал в похожих вопросах здесь, что один из способов исправить это - извлечь этот объект из других копий репозитория.или делать полный сброс.Я не могу сделать ни то, ни другое, поскольку у меня нет другой копии этого репо.

Есть ли способ просто удалить этот коммит или какое-либо другое решение, которое позволит мне подтолкнуть репо кновая история удаленного хранения?

Ответы [ 4 ]

3 голосов
/ 25 января 2012

Чтобы на самом деле устранить проблему и не потерять какие-либо данные (при условии, что это дерево является единственным отсутствующим объектом, в чем я сомневаюсь), вы можете попробовать это:

  1. извлечение родительского коммита коммита ссоответствующее дерево
  2. попробуйте git cat-file -p с именем проблемного коммита, чтобы увидеть, что говорит сообщение коммита (надеюсь, оно сообщит вам, что изменилось)
  3. теперь вы можете определить внесенные изменения, и, можно надеяться, из этого можно сделать вывод о структуре каталогов.
  4. , если сработало 3, то вы можете создать свое дерево вручную, используя текстовый редактор и компрессор zlib.Записи в файле tee будут другими объектами дерева или каплями.Надеемся, что большинство файлов и папок являются общими (без изменений) между двумя коммитами.Это позволит вам повторно использовать большинство записей из объекта дерева извлеченного коммита.
2 голосов
/ 15 октября 2014

Просто выйдите из приложения, с которым вы обращаетесь к git, и перезапустите. Работал у меня для xcode-iOS.

0 голосов
/ 24 марта 2015

У меня есть git repo в каталоге, который также находится в папке OneDrive на моем компьютере. Если вы используете OneDrive на другом компьютере, нажмите на репо на этом компьютере, а затем снова вытащите / нажмите на своем компьютере.

0 голосов
/ 19 июля 2012

У меня была эта проблема. Перезагрузка моего компьютера фактически исправила это, поэтому, пожалуйста, попробуйте сначала, прежде чем делать что-либо еще. Или, может быть, мне просто повезло, но стоит попробовать!

...