un git peut Repository être endommagé si une commande modifiant ou tombe en panne est annulée?

StackOverflow https://stackoverflow.com/questions/8384101

  •  28-10-2019
  •  | 
  •  

Question

Lors de la lecture autour de git, j'essaie parfois des choses, puis abort les commandes qui prennent trop de temps (par exemple certaines commandes git svn qui pendent au cours des problèmes de réseau). Cela m'a fait penser:

Est-il toujours en sécurité à force abort une commande (Ctrl-C ou kill)? Que faire si un commandement crasheds (de mémoire, bug, problème de réseau / FS)? Sont les modifications du référentiel « transactionnel » dans le sens que les changements incomplets sont « annulées » (comme dans un système de fichiers versioning)? Ou est-ce que je risque de corruption dépôt dans ce cas?

Je suis sûr que les gens intelligents qui travaillent sur git doivent avoir pris en compte, mais je ne pouvais trouver aucune information dans le git manuel ou en ligne.

Était-ce utile?

La solution

Le dépôt est entièrement transactionnel, oui.

L'arbre de travail est presque transactionnel, mais il y a un cas d'angle qui ne peut pas être facilement traitée. Commander ne si vous interrompez tous les contrôles nécessaires et écrit le nouveau contenu dans les fichiers temporaires et pendant le temps, rien n'est modifié. Mais il est de renommer les fichiers à l'un des arbres par un et, enfin, met à jour l'arbitre HEAD et l'interruption dans cette phase peut vous laisser avec des modifications partielles apportées à l'arbre. Il n'y a pas renommage de masse pour permettre le faire atomiquement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top