Disclaimer: je ne suis pas un hg utilisateur, de sorte que j'ai lu sur hg, mais n'ont pas beaucoup d'expérience de première main de l'utiliser.
git fournit plusieurs outils puissants et flexibles pour la gestion des branches dans un "patch file d'attente" de style pour un grand nombre de base (et même certains assez complexe) des cas d'utilisation, natif git est suffisamment puissant.
Généralement, la plupart des projets de garder une centrale stable de la branche master qui seulement de nouveaux gains s'engage et n'est jamais "rembobiné" de sorte s'engage dans la branche master sont fixes.
Sur le dessus de cela un responsable (ou un développeur) peut disposer d'un ou plusieurs fluides branches de l'avancée des travaux correctifs (c'est à dire commits), qui sont basés sur la branche stable.
Typique patch de gérer les activités comprennent:
le rebasage le patch file d'attente sur la dernière branche stable - utiliser git rebase
,
dupliquer le patch file d'attente sur un vieux maintentance d'une branche d'utilisation git branch
et git rebase
,
la réorganisation des patchs dans la file d'attente, utilisez git rebase --interactive
(aka git rebase -i
) à l'aide d'un éditeur de texte pour réorganiser la file d'attente.
l'écrasement de patchs à usage git rebase -i
avec la courge directive
modifier les patchs ou les patch des messages de commit - utiliser git rebase -i
(spot un thème?) avec la modification de la directive.
Toute activité qui modifie un patch en quelque sorte (c'est à dire son contenu, de description ou de filiation) va créer un nouveau commit avec un nouveau commit id pour le patch. Le fait que la vieille s'engage peuvent être jetés et remplacés régulièrement avant ils sont promus à la stabilité de la branche master est la seule chose qui les rend un "patch file d'attente", plutôt que d'une branche, mais c'est un projet de convention plutôt que d'une différence physique dans les données qui fait le commet. Git ils sont des objets identiques.
Afin de promouvoir un patch pour un "vrai" commit est juste déplacer le patch à l'avant de la file d'attente et la fusion dans la branche master. Après le déplacement du patch à l'avant de la file d'attente, il est tout de même normal de commettre basée sur la branche master, de sorte que la fusion juste pour avancer rapidement la branche master pointeur sur le patch s'engager.
La publication de ce commit comme "stable" maître patch est la loi qui dit: c'est maintenant une révision qui ne changera pas et est une partie de l'immuable de l'histoire du projet.