source

fatal: git-write-tree: 트리 작성 오류

manycodes 2023. 7. 10. 22:30
반응형

fatal: git-write-tree: 트리 작성 오류

나는 했습니다.git pull공유 깃 저장소에서, 하지만 내가 시도한 후에, 무언가 정말로 잘못되었습니다.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

그 모든 것을 리셋할 수 있는 방법이 있습니까?

감사해요.

사용하다

git reset --mixed

대신에 git reset --hard변경 사항이 손실되지 않습니다.

이것은 저에게 효과가 있었습니다.

$ 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

malat의 응답을 확인하기 위해 패치를 만든 후 나중에 다시 적용하여 변경 사항이 손실되는 것을 방지할 수 있습니다.

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

안전을 위해 패치를 리포지토리 폴더 외부에 저장합니다.

사용:

 git reset --hard

잔돈을 잃어버렸지만, 이것은 괜찮습니다.

Git 저장소에 병합되지 않은 경로가 있을 수 있습니다. Git 저장소를 저장하기 전에 확인해야 합니다.

다른 지점을 병합하려고 할 때 이 문제가 발생했습니다.병합에 실패했습니다.fatal: git-write-tree: error building trees병합과 관련이 없는 다른 파일에 대해 불평했습니다.그런 다음 분기에 커밋되지 않은 변경사항으로 병합을 시도한 파일이 포함되었습니다.

병합을 시도한 변경 내용을 지우고 문제 파일을 제거한 후 해시를 다시 작성했습니다.

git reset --hard;

git rm --cache problem_file.txt;

git hash-object -w problem_file.txt;

그런 다음 병합이 작동했습니다.

변경 내용을 저장하려고 할 때 변경 내용이 지점의 현재 상태와 충돌했습니다.

그래서 했습니다.git reset --mixed그리고 나서 깃 분쟁을 해결하고 다시 숨겼습니다.

언급URL : https://stackoverflow.com/questions/5483213/fatal-git-write-tree-error-building-trees

반응형