Travailler avec Git, le workflow d'Opus Codium et ExperimentsLabs

Depuis deux ans maintenant, je travaille régulièrement avec l'équipe d'Opus Codium. Nous avons un workflow concernant la gestion de nos dépôts Git que je souhaitais partager avec vous.

[github-user-card:opus-codium]

Principes de base:

Workflow: le collaborateur a le droit de créer des branches sur le dépôt

Une fois le travail terminé (= la feature/le fix est fini, le CI passe):

Workflow: le collaborateur n’a pas accès au dépôt en écriture:

Notes

Git add -p ou --patch, késako ?

Un git add . va ajouter tous les fichiers modifiés (et les fichiers non suivis) en staging. Hors souvent, on a des fichiers modifiés avec des changements qui pourraient être explosés dans plusieurs commits, ou même encore que l’on ne veut pas voir commités.

Utiliser git add -p va permettre de choisir dans les fichiers modifiés ce que l’on souhaite passer en staging (et donc mettre dans notre prochain commit).

Un example de sortie:

diff --git a/app/assets/stylesheets/_variables.scss b/app/assets/stylesheets/_variables.scss
index f8ce65c..3043d4a 100644
--- a/app/assets/stylesheets/_variables.scss
+++ b/app/assets/stylesheets/_variables.scss
@@ -31,7 +31,7 @@ $color-borders: transparentize($color-base, .9);
 $color-in-card-borders: transparentize($color-base, .8);

 // Links
-$link-color: $color-grey-800;
+$link-color: $color-grey-700;
 $link-color-hover: $color-grey-600;

 // User content colors
Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? y <------- là je choisis de "stager" cette modif
@@ -45,6 +45,7 @@ $content-upload-bg: $color-white;
 // Classifiers
 $language-bg: $color-green-100;
 $license-bg: $color-orange-200;
+// $some-useless-change: #333;
 $tag-bg: $color-blue-100;
 $user-bg: $color-blue-grey-100;

Stage this hunk [y,n,q,a,d,K,g,/,e,?]? n <------- là je choisis de ne pas "stager" cette modif

Les modifications non acceptées restent dans l’index : elles ne sont pas perdues et pourront par exemple faire partie d’un nouveau commit.

Attention cependant : git add -p proposera uniquement d’ajouter les modifications des fichiers suivis par git (les “nouveaux” fichiers ne seront pas proposés). Il faut donc être vigilant et bien vérifier le status du dépôt avec git status avant de faire un git commit.

Remerciements

Merci à l’équipe d’Opus Codium pour la première relecture.