On dit souvent que vous ne devriez pas rebaser les commits que vous avez déjà poussés. Quel pourrait être le sens de cela?
Réponses
Trop de publicités?Le ProGit livre a une bonne explication.
La réponse précise à votre question peut être trouvée dans la section intitulée "les Dangers de L'année de référence". Une citation de cet article:
Lorsque vous rebase choses, vous êtes abandonnant s'engage et d'en créer de nouvelles qui sont similaires mais différentes. Si vous poussez s'engage quelque part et d'autres de tirer vers le bas et de la base de travailler sur eux, et puis vous réécrire ces s'engage avec git rebase et les pousser à nouveau, votre les collaborateurs ont de re-fusionner leur travail, et les choses vont déraper lorsque vous essayez de tirer leur travail dans les vôtres.
Mise à jour:
Basé sur vos commentaires ci-dessous, il semble que votre rencontrez des difficultés avec votre workflow Git. Voici quelques références qui pourront vous aider:
- L'
gitworkflows
page de man: Voir "Fusionner vers le Haut" et "Branches" - ProGit: Voir "Privé Géré L'Équipe"
- Jarrod Spillers blog: Voir "git merge vs git rebase: Éviter Rebase l'Enfer"
La relocalisation réécrit l'histoire. Si personne ne sait à propos de cette histoire, alors que c'est parfaitement bien. Si, cependant, que l'histoire est connue du public, puis réécriture de l'histoire dans Git fonctionne de la même manière qu'il le fait dans le monde réel: vous avez besoin d'un complot.
Les complots sont vraiment dur de garder ensemble, afin de mieux vous éviter de rebasage public branches en premier lieu.
À noter qu'il y sont des exemples de succès de conspirations: l' pu
de la branche de Junio C. Hamano du dépôt git (le dépôt officiel de la Git SCM) est relocalisée fréquemment. La façon dont cela fonctionne est que presque tout le monde qui utilise pu
est également souscrit à l'Git liste de diffusion des développeurs, et le fait que l' pu
de la branche est relocalisée est largement relayé sur la liste de diffusion et le Git site web.
Une base modifie l’historique de votre référentiel. Si vous diffusez des commits dans le monde, c'est-à-dire que vous les mettez à la disposition des autres, et que vous modifiez ensuite votre vision de l'historique des commits, il devient difficile de travailler avec quiconque possède votre ancienne histoire.
Rebase considéré comme nuisible est un bon aperçu, je pense.