Question

Je viens de commencer à utiliser Git aux côtés de Mercurial pour me familiariser avec Git.

J'utilise l'extension mq en Mercurial largement pour gérer des correctifs locaux, et je suis à la recherche d'un équivalent Git.

Dois-je utiliser la branche Git? Ou y at-il de meilleures façons de gérer les patchs locaux qui permettent d'application et de retirer facilement les patches?

Merci,

Était-ce utile?

La solution

Consultez la section "couches d'interface de gestion de la" Patch des Interfaces sur Git Wiki. On énumère deux interfaces de gestion des correctifs, à peu près équivalent à de la «mq mercuriels extension :

  • stgit (Stacked Git), plus des deux, écrit en Python, utilise deux instantanés pour représenter correctif
  • Culpabilité (anciennement 'GQ'), écrits en série de scripts bash, série fichier et les patches (un par fichier) sont stockés sous forme de fichier texte brut.
  • pg (Patchy Git) est dépréciée , et non plus maintenu.

Mais si vous n'avez pas besoin d'utilisation plus avancée, vous pouvez utiliser à la place "

Autres conseils

Disclaimer: Je ne suis pas un utilisateur hg, donc je l'ai lu sur hg mais n'ont pas beaucoup l'expérience de première main de l'utiliser

.

git fournit plusieurs outils très puissants et flexibles pour la gestion des branches dans un style « queue patch » pour de nombreuses base (et même un peu assez complexe) des cas d'utilisation, git natif est suffisamment puissant.

En règle générale, la plupart des projets gardent une branche principale stable centrale qui ne gagne que de nouveaux commits et est jamais « rembobine » si la branche engage maître sont fixes.

En plus de cela un mainteneur (ou un développeur) peut maintenir une ou plusieurs branches fluides de patchs travail en cours (à savoir engage) qui sont basées sur la branche stable.

activités Gestion de patch typiques comprennent:

rebasage la file d'attente du patch sur la branche stable lastest - utilisation git rebase,

dupliquer la file d'attente de patch sur une ancienne branche Maintentance - utilisation git branch et git rebase,

patches dans la file d'attente de réordonnancement -. L'utilisation git rebase --interactive (aka git rebase -i) en utilisant un éditeur de texte pour modifier l'ordre de la file d'attente

patches écrasant - utilisation git rebase -i avec la directive de squash

altérant patches ou correctifs de commits -. L'utilisation git rebase -i (? Repérer un thème) avec la directive modifier

Toute activité qui modifie un patch de quelque façon (à savoir son contenu, la description ou la filiation) va créer un nouveau commit avec un commit id pour ce patch. Le fait que les anciens commits peuvent être jetés et remplacés régulièrement avant d'être promu à la branche principale stable est la seule chose qui les rend une file d'attente de patch »plutôt que d'une branche, mais cela est une convention de projet plutôt que toute différence physique dans les données qui les commits. Pour git ils sont des objets identiques.

Pour promouvoir un patch à un commettras « réel » est tout simplement le patch en mouvement à l'avant de la file d'attente et la fusion dans la branche principale. Après avoir déplacé le patch à l'avant de la file d'attente, il est tout de même un COMMIT basé sur la branche principale, la fusion de façon juste rapide vers l'avant le pointeur de la branche maître pour pointer sur le patch commit.

La publication de ce commit comme un patch maître « stable » est l'acte qui dit: ceci est maintenant une livraison qui ne changera pas et fait partie de l'histoire immuable du projet

.

Il suffit d'utiliser une branche et rebasage contre votre branche amont régulièrement. Ceci est à la fois plus facile à gérer et plus sûr que d'utiliser mq (dont j'ai perdu des données dans le passé).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top