31 votes

Supprimer l'historique des validations Github

Est-il possible de supprimer mon historique de commit github? Je ne veux pas perdre tous mes commits, juste les 10 derniers environ qui ont été poussés vers github. Je n'arrive pas à comprendre comment faire cela.

62voto

matthewdaniel Points 971

Choisissez simplement le hachage dans lequel vous souhaitez revenir et, dans votre clone, faites:

 git reset --hard hash# 
git push -f origin branch
 

branch est le nom de la branche que vous souhaitez envoyer. Voilà. Soyez prudent avec la poussée de force. Vous voudrez peut-être copier votre répertoire de travail jusqu'à ce que vous le connaissiez.

4voto

Kit Ho Points 4632

Si vous voulez le faire, vous pouvez utiliser HEAD~10

 git reset --hard HEAD~10

git push -f origin master
 

Il n'est pas recommandé de supprimer l'historique de validation du serveur, en particulier: si vous avez une équipe de personnes travaillant sur ce dépôt.

Si vous avez une équipe de personnes travaillant sur cela, je recommanderais de revenir en arrière en ajoutant un autre commit qui annule votre code que vous ne voulez pas.

1voto

Droogans Points 2098

J'avais uploadé tous mes fichiers de mon premier projet github, y compris certains des fichiers de paramètres avec les clés secrètes. J'ai dû revenir en arrière et supprimer toutes les versions qui ont été inclus avant j'ai ajouté mon .gitignore le fichier, et supprimé tous les fichiers de paramètres de mon projet de mémoire cache.

Comment j'ai fait cela:

gedit ./.git/logs/HEAD

Trouver les 40 caractères de hachage SHA de la 'racine' vous souhaitez supprimer tout avant. Copier dans le presse-papiers et le fermer. (Vous pouvez ou ne pouvez pas utiliser gedit, un éditeur de texte par défaut pour linux).

$> gedit ./.git/info/grafts

Collez le SHA ici. Accédez à votre répertoire du projet.

$> cd ../..

$> git filter-branch

La Force de la poussée vers le maître, sinon il va bloquer votre tentative pour effacer votre historique.

$> git push --force -u origin master

Supprimer votre grafts le fichier.

$> rm ./.git/info/grafts

NEVERMIND

Eh bien, ma réponse est que la moitié de la bataille. Mon activité publique flux RSS a encore des liens vers tous les diffs qui décrivent en détail les informations que j'ai voulu supprimer. Apparemment, il n'y a pas moyen de supprimer cela, mais vous devriez le lire sans doute Changer votre Mot de passe, et de mettre à jour les données sensibles que vous pourriez avoir accidentellement téléchargé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X