1
votes

Comment supprimer les commits git inutilisés à distance?

Récemment, j'ai nettoyé mon dépôt git en utilisant git rebase -i --root master . J'ai écrasé quelques commits ensemble, en ai édité certains, j'ai réglé l'heure en conséquence et à la fin j'ai utilisé git push --force-with-bail origin master pour pousser mon état local vers distant.

Cela a très bien fonctionné et mon dépôt est maintenant nettoyé comme indiqué ici mais d'une manière ou d'une autre, j'ai pu trouver un ancien hachage de commit et en le recherchant explicitement via l'url, je suis toujours en mesure de voir l'ancien arbre qui n'est plus utilisé comme vu ici .

Ma question est donc de savoir si et comment il est possible de supprimer ces anciens commits / arbres de mon dépôt distant?

Des idées?


3 Réponses :


0
votes

Vous pouvez vérifier cette réponse .

TL; DR:

Ils seront supprimés après un certain temps s'ils n'appartiennent pas à une branche ou à une balise.


0 commentaires

0
votes

Si vous souhaitez les supprimer manuellement, vous pouvez utiliser les commandes pick et drop .

choisissez commithash
abandonner commithash

Par exemple:
git rebase -i - maître racine
choisissez 2d224bc6cec9b33ae9b910dbef5efdd707625383
déposer 2d224bc6cec9b33ae9b910dbef5efdd707625383


0 commentaires

0
votes

"Supprimer" un commit ne le supprime pas : il reste un moment. Vous ne pouvez plus le trouver à moins d'avoir enregistré l'ID de hachage quelque part.

Vous avez enregistré l'ID de hachage, 3597386eaa550367e5531e4ec019f04e1d7e40df . Plus précisément, l'URL GitHub que vous avez enregistrée comprend l'ID de hachage, que vous présentez ensuite à GitHub, afin qu'ils puissent utiliser l'ID de hachage de leur côté - et qui localise toujours le commit, qui est toujours là.

Il restera là jusqu'à ce qu'il ne le soit plus. Il est difficile de dire exactement quand cela sera: Git a une commande de maintenance qui nettoie les commits inutilisés. Dans votre propre copie du référentiel, vous pouvez exécuter cette commande de maintenance selon votre propre calendrier. Dans la copie sur GitHub, vous êtes à la merci de leur calendrier de maintenance.

(Si c'est vraiment important, vous pouvez demander aux gens de GitHub de faire un nettoyage anticipé. Cependant, la plupart des choses que vous pourriez gérer de cette façon - comme se débarrasser d'un commit qui a exposé un mot de passe - sont bien dans le " en retard "au moment où vous pouvez réellement le faire, il y a donc rarement une raison de s'embêter avec ça.)


0 commentaires