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.
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.