J'ai des ordures comme des ordures dans ma déposition git. Celles-ci ont été créées par ex. l'interface graphique de git lors de la modification des derniers contrats de commission et de créer accidentellement des commits supplémentaires.
Maintenant, j'ai des commits qui se trouvent avec aucune tête assignée (détachée, ne faisant partie d'aucune branche). P>
Comme je le veux Ranger, ma question est la suivante: comment puis-je supprimer ces engagements (voir f, g et h)? Est-ce fait-ce à l'aide de Rebase ou de revenir ou de réinitialiser? Ou en utilisant un autre outil? Sur quel commettre dois-je m'asseoir pour le faire? P> merci p> chrétien p> p> P>
3 Réponses :
Essayez ceci:
git reflog expire --expire=now git gc --prune=now
Cela n'a rien changé. Désolé
@Christian Wolf: Si cela n'a rien changé, votre commits F, G et H sont référés par quelque chose i>. Vous avez peut-être une balise pointant sur eux? Ou une cachette? Nous ne savons pas.
@Christian: Avez-vous vérifié en utilisant git fsck --untreducable code> que ces engagements sont en fait pendants? Sinon, aucune quantité de gc / pruneau ne les retirera. Vous devez d'abord supprimer la (les) référence (s).
Je dois être fatigué hier. Aujourd'hui, après avoir dormi et en réalisation, les commits n'existent pas.
J'utilisais Gitk et je pensais avoir le même problème, ils n'étaient pas élagués. Essayez de recharger (Shift-F5) VS Update (F5).
Je devais utiliser le drapeau - tout code> avec reflog code> pour tailler mes commits: git reflog expire --expire = maintenant --all --all code>. En outre, j'ai trouvé la commande git fsck code> utile pour déterminer ce qui se passait; Spécifiquement, Git FSCK --UnRéchable --No-Reflog CODE> Affiche les engagements qui sont inaccessibles ou accessibles uniquement à partir du reflèvement.
Je devais utiliser git gc -prune = maintenant - herggressive code>
faire ci-dessous:
git config gc.reflogexpireUnreachable now git gc --prune=now git config --unset gc.reflogexpireUnreachable
Merci! - Votre solution a supprimé "les engagements recyclables", la réponse acceptée n'a pas.
git reflog expire --expire=now --all git gc --prune=now Note: I know this is written in the comments of the most voted answer, but I keep finding myself coming back to this question and not immediately finding the answer that works. The --all option is the only thing that is missing from the most voted answer, but is what makes it work for me.
duplicaté possible de La liste et la suppression de GIT commits qui sont Sous Pas de branche (pendling?)