роковое: git-write-tree: ошибка построения деревьев - PullRequest
174 голосов
/ 30 марта 2011

Я сделал git pull из общего репозитория git, но что-то пошло не так после того, как я попробовал git revert.Вот ситуация сейчас:

$ git stash
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: needs merge
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: needs merge
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: needs merge
Testing/Source/DataStructureAndEncodingDefinition/Cxx/TestDS.cxx: needs merge
Utilities/socketxx/socket++/sockstream.cpp: needs merge
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: needs merge
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: needs merge
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: needs merge
Testing/Source/DataStructureAndEncodingDefinition/Cxx/TestDS.cxx: needs merge
Utilities/socketxx/socket++/sockstream.cpp: needs merge
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: unmerged (2aafac967c35fa4e77c3086b83a3c102939ad168)
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: unmerged (78cc95e8bae85bf8345a7793676e878e83df167b)
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: unmerged (2524db713fbde0d7ebd86bfe2afc4b4d7d48db33)
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: unmerged (4bb4ba78973091eaa854b03c6ce24e8f4af9e7cc)
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: unmerged (ad0982b8b8b4c4fef23e69bbb639ca6d0cd98dd8)
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: unmerged (4868371b7218c6e007fb6c582ad4ab226167a80a)
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: unmerged (f7a1b386b5b13b8fa8b6a31ce1258d2d5e5b13c5)
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: unmerged (6ce299c416fbb3bb60e11ef1e54962ffd3449a4c)
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: unmerged (75c8043a60a56a1130a34cdbd91d130bc9343c1c)
Testing/Source/DataStructureAndEncodingDefinition/Cxx/TestDS.cxx: unmerged (79c2843f2649ea9c87fa57662dafd899a5fa39ee)
...
fatal: git-write-tree: error building trees
Cannot save the current index state

Есть ли способ сбросить все это?

Спасибо

Ответы [ 6 ]

527 голосов
/ 17 апреля 2013

Использование:

git reset --mixed

вместо git reset --hard. Вы не потеряете никаких изменений.

34 голосов
/ 28 марта 2014

Это сработало для меня:

До

$ git status

И проверьте, есть ли у вас Unmerged paths

# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add <file>..." to mark resolution)
#
#   both modified:      app/assets/images/logo.png
#   both modified:      app/models/laundry.rb

Исправьте их с помощью git add для каждого изих и попробуйте git stash снова.

git add app/assets/images/logo.png
10 голосов
/ 03 июля 2012

Чтобы следить за реакцией Малата, вы можете избежать потери изменений, создав патч и применив его позже.

git diff --no-prefix > patch.txt
patch -p0 < patch.txt

Храните ваш патч вне папки репозитория для безопасности.

6 голосов
/ 30 марта 2011

Я использовал:

 git reset --hard

Я потерял некоторые изменения, но это нормально.

5 голосов
/ 15 сентября 2011

возможно, в вашем git-репозитории есть несколько необработанных путей, которые вы должны разрешить перед копированием.

0 голосов
/ 16 июля 2019

Это произошло для меня, когда я пытался спрятать свои изменения, но затем мои изменения имели конфликт с текущим состоянием моей ветви.

Итак, я сделал git reset --mixed, а затем решил конфликт с git и снова спрятал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...