Sur GitHub, j'ai créé un répertoire et cloné sur mon PC. Ensuite, à des fins de test, j’ai édité un fichier, fait un commit et l’a transmis à GitHub. Mais maintenant, je voudrais supprimer complètement ce commit.
J'ai fait ce qui suit:
git reset --hard <sha1_of_previous_commit>
git Push --force
Cela semblait correct, mais ma validation était toujours accessible sur GitHub par URL avec SHA1 de ma validation. J'ai donc supprimé le référentiel sur GitHub, puis l'URL disait "non trouvé".
Mais si je redistribue le même référentiel, mon commit est à nouveau accessible par cette URL. Aidez-moi s'il vous plaît, comment diable je peux me débarrasser de ce commit?
Cela a fonctionné pour moi:
J'ai réinitialisé la tête au nombre de commits de retour de 2
git reset --hard HEAD~2
et la force a poussé ma branche à distance par
git Push -f Origin my_branch_name
Je ne pouvais voir aucune trace des commits sur le repo distant.
Le " Supprimer des données sensibles d'un référentiel " est assez clair à ce sujet:
il est important de noter que ces commits peuvent toujours être accessibles dans n'importe quel clone ou fourche de votre référentiel, directement via leur hachage SHA-1 dans des vues en cache sur GitHub, et via toutes les demandes d'extraction qui les référencent.
Vous ne pouvez rien faire avec les clones ou les fourches existants de votre référentiel, mais vous pouvez supprimer définitivement toutes les vues en cache de votre référentiel et extraire les demandes sur GitHub en contactant le support GitHub.
Dans votre cas, il n'y avait (espérons-le) pas de fork/clone, mais vous devez contacter le support de GitHub pour demander un gc sur leur version du repo, afin que le commit à not ne soit plus disponible via son URL SHA1.
Il est possible que le commit soit toujours accessible via l'URL. Mais cela n’apparaît pas sur Github, je ne vois donc pas en quoi cela pose un problème s’il contient des informations sensibles.
Les commits ultérieurs auront des hachages uniques.