J'ai fait un à git pull
partir d'un référentiel git partagé, mais quelque chose s'est vraiment mal passé, après avoir essayé un git revert
. Voici la situation maintenant:
$ 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
Existe-t-il un moyen de réinitialiser tout cela?
Merci
--mixed
argument est égalementgit reset
le comportement par défaut, lorsqu'il ne reçoit pas d'argument. page de manuel pour référence.git reset
pour lesquelles l'--mixed
option (par défaut) est appropriée et efficace ici aussi. Selon merge - Problème de chemin non fusionné Git : Cela basculera vers HEAD, et dira à git d'oublier tout conflit de fusion, et de laisser le répertoire de travail tel quel. Heracek, c'est ce qui se passe?git stash
. Faire l'agit reset --mixed
résolu.Cela a fonctionné pour moi:
Faire
Et vérifiez si vous avez
Unmerged paths
Fixez-les
git add
à chacun d'eux et réessayezgit stash
.la source
git reset --mixed
, mais cela a fonctionné et semblait être mieux adapté à mon cas, car j'ai eu l'erreur aprèsgit stash
plutôt quegit revert
.git merge
, ou l'équivalent de la fusion git, et il a essayé de fusionner deux ensembles différents de modifications dans ce fichier, mais a échoué.Pour suivre la réponse de malat, vous pouvez éviter de perdre les modifications en créant un patch et en le réappliquant ultérieurement.
Stockez votre patch en dehors du dossier du référentiel pour plus de sécurité.
la source
mv
remettre le patch dans le répertoire où vous l'avez créé. 1.git diff
2.mv patch.txt /tmp
3.git stash
4.mv /tmp/patch.txt .
5.patch -p0
J'ai utilisé:
J'ai perdu quelques changements, mais ça va.
la source
git revert
tente de fusionner les changements du passé; vous avez correctement utiliségit reset
pour simplement rembobiner l'horloge. Il est regrettable quegit stash
cela ne fonctionne pas avec les conflits de fusion.il y a peut-être des chemins non fusionnés dans votre référentiel git que vous devez résoudre avant de les cacher.
la source
Cela m'est arrivé lorsque j'essayais de cacher mes modifications, mais mes modifications étaient en conflit avec l'état actuel de ma branche.
Alors j'ai fait
git reset --mixed
et ensuite résolu le conflit git et j'ai caché à nouveau.la source