Hice un git pull
desde un repositorio de git compartido, pero algo salió realmente mal, después de probar a git revert
. Aquí está la situación ahora:
$ 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
¿Hay alguna manera de restablecer todo eso?
Gracias
--mixed
argumento tambiéngit reset
es el comportamiento predeterminado, cuando no se le da un argumento. página de manual para referencia.git reset
con la--mixed
opción (predeterminada) es apropiado y efectivo aquí también. De acuerdo con merge : problema de ruta no fusionada de Git : esto cambiará a HEAD y le dirá a git que olvide cualquier conflicto de fusión y dejará el directorio de trabajo tal como está. Heracek, ¿es eso lo que está pasando?git stash
. Haciéndolo logit reset --mixed
resolvió.Esto funcionó para mí:
Hacer
Y verifica si tienes
Unmerged paths
Fíjelos con
git add
cada uno de ellos e intentegit stash
nuevamente.fuente
git reset --mixed
, pero funcionó, y parecía ser una mejor opción para mi caso porque recibí el error engit stash
lugar de hacerlogit revert
.git merge
, o el equivalente de git merge, e intentó fusionar dos conjuntos diferentes de cambios en ese archivo, pero falló.Para hacer un seguimiento de la respuesta de malat, puede evitar perder los cambios creando un parche y volver a aplicarlo más adelante.
Almacene su parche fuera de la carpeta del repositorio por seguridad.
fuente
mv
volver a colocar el parche en el directorio donde lo creaste. 1.git diff
2.mv patch.txt /tmp
3.git stash
4.mv /tmp/patch.txt .
5.patch -p0
Solía:
Perdí algunos cambios, pero esto está bien.
fuente
git revert
intenta fusionar los cambios del pasado; has usado correctamentegit reset
para simplemente rebobinar el reloj. Es lamentable quegit stash
no funcione con conflictos de fusión.tal vez hay algunos caminos no combinados en su repositorio de git que debe resolver antes de guardarlos.
fuente
Esto me sucedió cuando estaba tratando de esconder mis cambios, pero luego mis cambios tuvieron conflictos con el estado actual de mi sucursal.
Así lo hice
git reset --mixed
y luego resolví el conflicto git y me escondí de nuevo.fuente