Comment puis-je supprimer correctement les données sensibles poussé à un repo Git?
J'ai poussé un fichier contenant un mot de passe de mon repo par erreur - pour information, le repo est juste un petit projet personnel.
Une fois que j'ai compris le mot de passe a été présent, j'ai ajouté le fichier de .gitignore
et exécuté git rm -r --cached <filename>
, commis et poussé à la mise en pension.
Je me rends compte que le mot de passe est toujours présent dans l'histoire - quelle est la meilleure façon de l'enlever?
J'ai lu le Supprimer des données sensibles page sur Github, qui propose de modifier le mot de passe que j'ai fait - mais je voudrais supprimer l'histoire en tant que bien.
- double possible de Supprimer des fichiers sensibles et de leurs commits Git histoire
- Combien de livraisons ont déjà allé sur le dessus du mot de passe de s'engager dans votre télécommande?
- J'ai 5 s'engage après celle contenant le mot de passe
- Et encore une question: est-il autre chose qui est allé dans le mot de passe de commettre d'autres que le fichier de mot de passe lui-même?
- Oui, que de commettre d'autres choses ont été ajoutés aussi, merci
Vous devez vous connecter pour publier un commentaire.
Puisque vous avez déjà fait 5 s'engage depuis la validation contenant le mot de passe en clair, vous meilleur pari est de faire un
git rebase -i
en mode interactif sur votre succursale locale. Trouver le SHA-1 de la livraison où vous avez ajouté le mot de passe en clair, et tapez la commande suivante:où
dba507c
sont les 7 premiers caractères du SHA-1 pour le mal commis.Changer cela:
À ceci:
Faire le changement dans le fichier de mot de passe pour supprimer le texte, puis les valider votre résultat de ce genre:
Terminer le rebase, puis poussez votre (correcte) de la succursale locale de la télécommande via:
Vous aurez besoin de la force de pousser
your_branch
parce que vous avez réécrit l'histoire (en modifiant le fichier de mot de passe). Maintenant, vous avez toutes vos derniers commits, mais vous avez retiré le texte en clair.git rebase [-i] --root $tip
au lieuSi c'était le cas auparavant commmit, puis supprimer le mot de passe du fichier et de l'exécuter
Remarque: une Fois que vous avez posté qu'ici, sur Stackoverflow, beaucoup de gars ont déjà cloné le dépôt (vous avez le même nom d'utilisateur sur github et juste un référentiel). Modifier le mot de passe!
page on Github which suggests changing the password - which I have done
- Peut être utile pour les futurs lecteurs, de ne pas l'OP.