2009-10-06 4 views
5

Dites simplement que vous avez une branche de développement avec 100 messages de validation/journal presque inutiles. Est-il possible de fusionner la branche dev en master/head et d'avoir un seul message dans la branche master? Par exemple, un message de journal sur la branche principale/principale peut indiquer "Ajoute des fonctions XYZ"fusion de la branche dev en tête avec un seul message de journal

Il semble qu'il y ait deux bonnes réponses. L'utilisation de squash vous permet de masquer tous les commits de la branche master, et l'utilisation de rebase interactif vous permet de masquer des parties sélectionnées de l'historique de la branche master.

+2

Bien que cela soit possible, déterminez si vous voulez * vraiment * perdre tout cet historique. L'historique peut être utile plus tard, par exemple lorsque vous essayez de repérer l'introduction d'un bug. –

+0

Doh! Donc, la façon dont je comprends les deux réponses est techniquement correcte. Squash vous permet de cacher essentiellement tout l'historique, et rebase vous permet de simplement modifier l'historique. – corydoras

Répondre

9

git-merge --squash suivi de git commit devrait le faire.

(More documentation on git-merge)

+0

Je pense que c'est la réponse à ma question, même si l'utilisation de l'option rebase est probablement une meilleure chose à faire. – corydoras

+0

Je pense que l'on doit faire 'git commit' après ça? –

+0

Merci, c'est tout à fait vrai. – Phil

7

On dirait que git rebase --interactive est ce que vous avez besoin. This section du livre Git explique:

Vous pouvez également rebasculer interactivement. Ceci est souvent utilisé pour réécrire vos propres objets de validation avant de les pousser quelque part. C'est un moyen facile de diviser, fusionner ou re-commander des commits avant les partager avec d'autres. Vous pouvez également utiliser pour nettoyer commits vous avez tiré de quelqu'un lors de leur application localement.

+3

'git rebase -i' est l'une des meilleures choses que j'ai jamais apprises. –

+1

Merci! Je vais faire un point pour apprendre cela – corydoras

+1

D'accord. Vous ne voulez pas écraser (détruire l'histoire) si vous pouvez à la place réécrire l'histoire pour la rendre concise mais toujours utile. De plus, les rebas interactifs vous font sentir si puissant. – Cascabel

Questions connexes