2015-04-21 1 views
2

En ce qui concerne les workflows git, je m'interrogeais sur la pertinence de réécrire l'histoire. Mon flux de travail, et j'imagine que beaucoup d'autres, est celle-ci:Quelles sont les meilleures pratiques pour avoir l'histoire propre git?

  • Prenez garde Github, Appelons cette rep1
  • Faire une fourchette, ce sera REP2 clone git
  • localement pour travailler avec , c'est rep3
  • Apporter des modifications, engager à rep3
  • une fois que je suis fini, pousser à REP2 et demander à d'autres pour commentaires avant de faire un PR

Comme je l'ai Feedbac k, il semblerait que je veuille faire un rebasement et un écrasement, car souvent les commentaires sont des choses mineures comme la reformulation des commentaires ou des choses qui auraient dû être différentes en premier lieu, et ne méritent pas leur propre engagement.

Mais à partir de la documentation, il semble que je ne suis pas censé changer l'histoire sur rep2, et en effet des choses comme --ammend ne fonctionnent pas dans ce scénario. Est-ce que mon flux de travail est erroné ou est-ce que je ne comprends pas ces avertissements concernant l'évolution de l'histoire?

Répondre

2

La règle à propos rebase est la suivante: Vous ne devez rebasage vos succursales locales une fois que la branche est une branche publique que chacun peut saisir, vous ne devriez pas rebasage sur cette branche à nouveau, ou vous pouvez endommager tous les autres repo qui ont déjà cloné cette branche.

Si pour une raison quelconque vous décidez de rebase public (branche poussée) vous devez vous assurer que tous les utilisateurs qui ont tiré cette branche sont au courant de votre rebase.

Vous pouvez le vérifier en utilisant git pre-rebase crochet pour diminuer le rebasage ou pour afficher un avertissement ou une erreur dans ce cas

5

Règle générale: jamais réécrire l'histoire qui a déjà été publié. Les chances sont que quelqu'un ait déjà récupéré vos commits; Si vous réécrivez l'histoire, ces personnes auront des ennuis dès qu'elles auront extrait l'histoire réécrite.

Moins règle stricte de base: Dans certains cas, il peut être considéré comme correct de réécrire l'histoire publiée lorsque vous êtes absolument sûr que vous êtes le seul à travailler sur cette branche. Personnellement, je considérerais comme acceptable de réécrire l'historique d'une branche d'entité déjà poussée dans une branche inviduelle d'un dépôt GitHub, car je ne m'attendrais pas à ce que quelqu'un d'autre travaille sur cette branche. C'est juste une opinion personnelle, cependant.