L'un des atouts de Git est que, car il fonctionne avec des pointeurs, il est relativement facile d'annuler un large éventail de tâches, notamment Supprimer un commit ou commettre ou Création et suppression de branches distantes . Dans de nombreux cas, tout ce que vous avez à faire est de réinitialiser correctement le pointeur de tête de la branche actuelle à l'emplacement souhaité et à la voile, étape non annulée. Cela englobe un très large éventail de cas. P>
Autre que la suppression d'un référentiel entier ou une mauvaise pression, quelle est l'action la plus non triviale qui ne peut pas être annulée ni extrêmement difficile à annuler dans un référentiel git standard? P>
4 Réponses :
La fusion avec un arbre de travail sale peut entraîner quelque chose qui est difficile à restaurer. p> li>
ul>
Donc, en bref, des choses qui ne sont pas suivies par Git ne peuvent pas être restaurées par Git. Tout le reste est réparable. P> git propre code> supprime les fichiers non traqués. Ils ne peuvent pas être restaurés avec git. P> li>
En fait, tout ce qui est suivi par Git peut être restauré. La suppression d'une branche semble être permanente. Il existe même des manières non évidentes pour que la suppression de la branche se produise, par ex. GIT PUSH -MIRROR REMOTE CODE>; Lorsque votre local n'a pas de branches qui figurent sur la télécommande, la branche distante est supprimée de manière non interactive. ( cf. L'extrait des pages d'aide git : "-mirror [. ..
Un exemple d'action difficile à annuler serait: Le premier supprime la référence à certains engagements. La seconde supprime tous les engagements sans références. P> J'espère que cette question est juste une question de curiosité inactive, plutôt que de vouloir détruire quelqu'un de quelqu'un, mais en raison de la redondance inhérente au contrôle de la version distribuée, je suis pas trop inquiet. p> p>
Cette combinaison d'options Nuke Nuke les objets référencés par reflog code>?
Ceci est définitivement plus proche de la curiosité inactive que la malice. Je suis plus intéressé par les éventuelles limitations des capacités de contrôle des sources de GIT.
De loin le plus courant "difficile à annuler" que je rencontre parmi les nouveaux to git sont des abus de le en général, utilisez git cache code>, car git starh pop code> n'est pas toujours réversible avec git cachette code>. Envisagez: pop code> tentera de rétablir a code> et lancera un conflit, mais vous ne pouvez pas revenir à la sortie de la Pop en frappant git cachette code> à nouveau. C'est un exemple assez trivial, mais il est facile d'entrer dans un endroit méchant si vous blanchissez souvent de grands ensembles de changements et vous changez fréquemment des branches divergentes, sur le chemin. Je crois que git cache goutte code> est également permanent, c'est-à-dire qu'il n'y a pas de filet de sécurité si vous déposez la mauvaise cachette. P> STASH code> pour ce qu'il a été conçu pour faire: Caster une sale indice de travail pour accéder à une autre succursale, réparer un bogue, commettre, pousser et accumuler à votre état d'origine. Si vous essayez de l'utiliser pour gérer beaucoup de changements dans de nombreuses branches, cela vous mordra inévitablement sans beaucoup de soins. P> P>
C'est une ancienne entrée, mais dans ce cas, vous pouvez simplement réinitialiser --hard code>. STHSH POP CODE> Ne dépose pas automatiquement l'entrée de la cachette au cas où.
Dans mon expérience, l'action irréversible la plus courante que les gens effectuent est git reset --hard code>. Quand beaucoup de gens écrivent git reset code>, - dur code> semble venir trop naturellement quand ils n'avaient vraiment besoin que d'un réinitialiser code>, peut-être avec - -Marge code>. p>
Je ne comprends pas le point de cette question.
Je faire i> comprend le point de cette question et des analyses similaires. Essentiellement, il demande: "Où être dragons?" Cette question est loin d'être "non constructive", mais c'est un meilleur ajustement pour les échanges de pile de programmeurs. Lorsque vous commencez avec une nouvelle technologie, les développeurs veulent souvent savoir où sont les dragons, les pièges et les pièges de la charge.