Je suis très nouveau dans git, et je me demandais si quelque chose comme ça est possible?
>git log --pretty=oneline --abbrev-commit
2f05aba Added new feature
3371cec Fixed screw up <-- I want to remove this
daed25c Screw up <-- and remove this.
e2b2a84 First. So it's like they never happend.
Est-ce possible?
Si vous souhaitez vraiment les supprimer (les effacer de l'historique, pour ne plus jamais les voir), vous pouvez
exécuter rebase:
puis, supprimez (ou commentez) les lignes correspondant aux commits que vous souhaitez supprimer, comme ceci:
la source
git push origin HEAD --force
git revert
. Ce qui, quand vous y réfléchissez, est judicieux parce que si vous tiriez le code de quelqu'un d'autre, vous ne voudriez pas qu'il puisse effacer vos anciens commits sans une sorte d'histoire, n'est-ce pas?d
oudrop
est la commande pour supprimer les commits de l'historique.Pour supprimer complètement les commit (s), il existe
drop
maintenant une nouvelle option pour les rebases interactifs git. Première exécution:Remplacez ensuite
pick
pardrop
pour le (s) commit (s) à supprimer:Cela a fonctionné sur Fedora pour moi avec la version suivante:
la source
Squash est utile lorsque vous souhaitez générer une liste de commits fusionnés sous un seul hachage, mais si vous cherchez à prendre trois commits séparés et à avoir une sortie finale qui ressemble à un seul commit, je recommande
fixup
git rebase -i HEAD~4
Vous pouvez trouver plus d'informations dans la liste des commandes de l'interface utilisateur de rebase interactif.
la source