Github: Comment supprimer tous les commits par un certain nom d'utilisateur

quand j'ai commencé avec ce repo, Je n'avais pas utilisé git avant et biffé la configuration en misant sur mon e-mail ou quelque chose donc tous les commits depuis un certain temps ont été faits par l'utilisateur "unknown."J'ai trouvé une réponse ici pour convertir tous les "unknown" commits à mon nom mais ce qu'il a réellement fait était de dupliquer le commit et d'appliquer mon nom. Donc maintenant j'ai tous ces utilisateurs" inconnus " propagent dispersés.

je me demandais donc quelles commandes exécuter pour supprimer toutes les commits par " unknown" utilisateur.

14
demandé sur Justen 2011-11-09 03:32:49

1 réponses

vous devrez utiliser git filter-branch (dans votre repo ) et la force de pousser à github.

exemple de manuel qui traite presque la même situation où vous voulez supprimer des commits d'un utilisateur particulier:

git filter-branch --commit-filter '
    if [ "$GIT_AUTHOR_NAME" = "Darl McBribe" ];
    then
            skip_commit "$@";
    else
            git commit-tree "$@";
    fi' HEAD

notez que cela va réécrire votre historique et cela pourrait affecter les autres qui utilisent également votre repo.Conseils de GitHub sur les collaborateurs:

Traiter avec des collaborateurs

vous avez peut-être des collaborateurs qui vous ont souillé branche et créé leurs propres branches hors de lui. Après avoir pris votre nouvelle branche, ils devront utiliser git rebase sur leurs propres branches pour les rebaser haut de le nouveau. Le groupe de travail devrait également s'assurer que sa direction ne réintroduit pas le fichier, car il va l'annuler .gitignore fichier. Assurez-vous que votre collab utilise rebase et ne pas fusionner, sinon il will vient juste de réintroduire le dossier et toute l'histoire entachée... et rencontre probable une certaine Fusion conflit.

http://help.github.com/remove-sensitive-data/

15
répondu manojlds 2011-11-08 23:52:07