Si le mot "master", ou "maître" en français, vous fait automatiquement penser à l'esclavage et que l'émotion que cela suscite en vous et si forte que cela vous est insupportable, je pense que vous avez de sérieux problèmes mentaux.
Mais résumons, des gens qui n'ont jamais subit l'esclavage, imposent à des gens qui n'ont jamais détenus d'esclaves, dans un contexte ou l'esclavagisme a disparu en occident depuis plus d'un siecle voire plus de deux, en se servant d'un fait divers ou un drogué, criminel multi-récidiviste, est mort d'overdose pendant une arrestation, de transformer un standard anodin de l'informatique mondiale en centre de dépenses absurdes et inutiles pour satisfaire leur égo surdimensionné : le monde entier doit changer pour leur convenir, mais eux ne doivent pas s'adapter, ce ne serait pas "inclusif".
J'avais lu que certains renommaient leur branche "master/main" en "so" ou "slave-owner" en guise de protestation face à l'absurde. Et je comprends le geste... #WokeFatigue
Les exigences permanentes de ces divas sont insupportables. Leur valeur ajoutée pour la société est négative. Ils font perdre leur temps et épuisent ceux qui ont mieux à faire que de s'intéresser à leurs petites émotions, à leurs ressenties...
On mérite ce qu'on tolère 😡
Pour faire le diff entre deux branches :
# Diff entre le HEAD des deux branches
git diff master..ma-branch
# Diff entre le point de bifurcation de "ma-branch" dans master et le HEAD de "ma-branche"
git diff master...ma-branchEn étape (4) j'aurai réécrit l'historique de la branche sur la branche elle-même en faisant git push --force origin ma-branche à la place de git push --force origin master.
Cela a plusieurs avantages :
1) Je ne force pas la réécriture du master à chaque fois, ce qui obligerait tout le monde à mettre à jour son HEAD si des merges sont fréquents de cette branche vers lui.
2) Cela permet encore d'effectuer une PR/MR pour une review de code.
3) Cela permet de travailler sur la branche sans perturber les autres.
4) Je peux rebase ma branche autant de fois que nécessaire sans impact sur master.
Très pratique pour nettoyer toutes les feature branches récupérées au fil du temps. Bref, le nettoyage se fait en deux commandes :
# Récupérer de tout le contenu distant (hors tags)
git pull --all
# Suppression des branches locales
git remote update origin --pruneUn article intéressant sur les "branch prediction" ou en d'autres termes, la fonctionnalité de prédiction du prochain calcul d'un micro-processeur. Ceci expliqué via une doc Java et C++ qui montrent qu'une liste triée permet de mieux prédire le prochain code et donc l'accès à l'information se fait plus vite.