Mise à jour: Comme d'autres l'ont fait remarquer, n'effectuez aucun rebasing ou réécriture d'historique de quelque sorte que ce soit si vous avez envoyé une origine distante et partagé ce code avec d'autres développeurs. Réponse courte: C'est dangereux et risqué!
Je vous recommande de vérifier la commande rebase pour cela. Il fait exactement ce que vous demandez
Qu'est-ce que cela ne se prend plus petits commits et de les combiner en plus grandes
Pour l'utiliser:
git rebase -i HEAD~5
Votre éditeur pop avec les 5 derniers commits de la tête de la branche actuelle, avec de la documentation. Dans votre cas, vous voudrez utiliser squash
. Le site que je l'explique lié très bien, ils ont cet exemple:
pick 01d1124 Adding license
squash 6340aaa Moving license into its own file
squash ebfd367 Jekyll has become self-aware.
squash 30e0ccb Changed the tagline in the binary, too.
Cela empaqueter les 3 précédents commits et les mettre tous sous celui que vous avez marqué comme pick
. Vous pouvez ensuite modifier le message de validation et ainsi de suite.
Amusez-vous
Voir aussi http://stackoverflow.com/questions/2302736/trimming-git-checkins-squashing-git-history/2302947#2302947 pour les commandes de squash – VonC
Vous pourriez également envisager d'ajouter un hook de pré-validation pour vous aider passez en revue votre style de codage. Avec cela, vous pouvez avoir git se plaindre si vous essayez de valider le code qui viole certaines normes que vous avez définies. Vous pouvez aider à prévenir les mauvais commits en premier lieu! L'exemple de hook de pré-validation ('.git/hooks/pre-commit.sample') recherche des choses comme des espaces après les lignes. Vous pouvez par exemple insérer un retrait GNU dans un script pour appliquer un style de codage spécifique et le placer dans votre hook de pré-validation. –