00:00:00Bonjour à tous. Je m'appelle Scott Chacone, je suis le PDG de Git Brother.
00:00:02Je vais vous faire une petite démo du nouveau CLI Git Brother.
00:00:06Si vous êtes familiers avec la ligne de commande,
00:00:08et que vous voulez utiliser Git Brother de manière programmatique,
00:00:11ce nouveau CLI est un outil vraiment sympa.
00:00:14C'est parti. On va commencer avec un dépôt.
00:00:18J'ai ce petit projet en Rust,
00:00:20et on va passer en revue le flux de travail du CLI Git Brother.
00:00:23Il s'agit essentiellement d'une alternative directe à Git. Une fois installé,
00:00:27votre interface principale sera la commande "but" au lieu de Git.
00:00:32Vous pouvez lancer "but" ou "but status", qui est son raccourci.
00:00:35Cela vous affichera l'état du dépôt.
00:00:38C'est très proche du résultat d'un "git status".
00:00:41On voit qu'il y a quatre fichiers modifiés.
00:00:44Certains ne sont pas suivis, d'autres ont été changés.
00:00:47Il y a de nouveaux fichiers et des fichiers modifiés, mais avec "but",
00:00:50le statut affiche simplement une liste de quatre changements.
00:00:55Ce sont vos modifications. Vous pouvez les valider (commit)
00:00:59comme bon vous semble. On va simplement lancer "but commit".
00:01:02Ça va créer une branche temporaire. Essayons tout de suite.
00:01:05En relançant "but status", on voit que tous les changements sont regroupés.
00:01:11On peut aussi faire "but status -f" ou "--files".
00:01:15Cela montre précisément les fichiers modifiés dans ce commit.
00:01:18Mais supposons qu'on ne veuille pas tout mettre dans un seul commit.
00:01:21Certains concernent "Clod", un autre est un Readme,
00:01:24et un autre modifie le code. Ce sont trois changements distincts.
00:01:28On veut donc trois commits différents. On va annuler ça.
00:01:31On peut annuler un commit en lançant
00:01:36"uncommit". Et voilà, on est revenu en arrière. La branche temporaire est toujours là.
00:01:40On pourrait la supprimer, mais on va simplement la réutiliser.
00:01:44Je vais la renommer. Je l'appelle "Clod stuff".
00:01:48J'ai maintenant une nouvelle branche et je peux y indexer des fichiers,
00:01:53un peu comme un "git add". On fait : "but stage G0 H0".
00:01:58Ce sont les codes courts pour ces fichiers.
00:02:01On peut aussi taper le chemin complet,
00:02:04mais on essaie de rendre ça très rapide. Et là, on voit
00:02:08qu'ils sont indexés sur la branche "Clod stuff". Je peux committer avec "-o",
00:02:12ce qui signifie "uniquement ce qui est indexé". Si je fais juste "commit",
00:02:15ça prendrait tout ce qui est indexé ET ce qui ne l'est pas.
00:02:18Ce sera plus clair avec plusieurs branches,
00:02:20mais validons ça. On a maintenant une branche avec un commit
00:02:25et quelques modifications non indexées.
00:02:28C'est là que ça devient intéressant car, contrairement à Git,
00:02:31disons que je veuille valider ce Readme,
00:02:34le pousser et ouvrir une Pull Request (PR) pour lui.
00:02:37Normalement, si je suis sur la branche "Clod",
00:02:41je devrais remiser (stash) mon travail, ajouter le Readme, le committer,
00:02:44et le pousser pour la PR.
00:02:45Mais avec Git Brother, on peut avoir des branches parallèles.
00:02:50Je peux faire "but branch new readme" et vous voyez une nouvelle branche
00:02:55apparaître, et je peux y indexer le fichier.
00:03:00Je peux ensuite committer ce fichier.
00:03:01Si on regarde les fichiers modifiés,
00:03:07j'ai ce commit avec les deux éléments "Clod".
00:03:09Et j'ai ce Readme avec sa modification spécifique. Encore une fois,
00:03:11je peux faire la même chose. Je peux faire "commit",
00:03:17"-c" pour créer une nouvelle branche de cette façon. Voyons
00:03:21ce qu'on a vraiment modifié ici. J'ai oublié. Ah,
00:03:25cette commande "read". D'accord.
00:03:27Ça va prendre le dernier élément non committé
00:03:32pour l'ajouter à une nouvelle branche et le valider.
00:03:35On a désormais trois branches.
00:03:38Elles sont toutes indépendantes les unes des autres.
00:03:39Tous ces changements sont toujours dans notre répertoire de travail.
00:03:42On n'a absolument pas modifié l'état de nos fichiers locaux.
00:03:44On crée simplement des commits en mémoire.
00:03:46Maintenant, je lance "but push" et il me demande quoi pousser.
00:03:50Toutes les branches ? Elles ont chacune un commit local.
00:03:53Ou une seule ? Poussons seulement le Readme.
00:03:57Admettons que ce soit le seul qui soit prêt pour l'instant.
00:03:59On le sélectionne et il est poussé.
00:04:02En regardant à nouveau le statut,
00:04:03on voit que celui-ci est marqué comme poussé.
00:04:06Les autres restent uniquement en local.
00:04:08Git Brother est très puissant pour gérer plusieurs branches à la fois.
00:04:11Mais il gère aussi les branches empilées (stacked branches).
00:04:13Voyons un exemple : créer une nouvelle fonctionnalité
00:04:17basée sur l'un des commits que nous venons de faire,
00:04:19en créant une branche empilée par-dessus.
00:04:20Comme ça, on peut fusionner la base tout en continuant de travailler sur la suite.
00:04:23Supposons qu'on veuille créer une branche empilée.
00:04:26On veut que la commande "read" soit revue et fusionnée,
00:04:30mais on veut pouvoir continuer à l'améliorer.
00:04:32C'est le cas typique pour une branche empilée plutôt qu'indépendante
00:04:35car il y a une dépendance. Voici comment faire :
00:04:38"but branch new -a" pour définir le point d'ancrage,
00:04:42qui est "SC read command". Et on la nomme "SC read more".
00:04:46Maintenant, si on regarde,
00:04:48on voit bien cette branche empilée sur l'autre.
00:04:50Modifions cela.
00:04:52On voit que ça récupère 10 messages pour les afficher.
00:04:57Passons à 20 messages. Et on change ça aussi.
00:05:02On voit le changement et une icône de cadenas car
00:05:09on modifie un fichier déjà committé ailleurs.
00:05:11C'est donc verrouillé à un commit spécifique.
00:05:13On ne peut le valider que par-dessus, car il modifie du code
00:05:16introduit juste avant. On peut voir les changements avec "diff",
00:05:20ce qui est pratique pour voir les blocs modifiés, et on peut
00:05:25procéder au commit. Voilà.
00:05:28Pour montrer à quel point c'est facile de manipuler les commits,
00:05:32voici ce qu'on peut faire.
00:05:33Avec "status -f", on voit tous les fichiers.
00:05:37Partageons tout ça. On a vu "push" pour
00:05:40pousser vers le dépôt distant,
00:05:42mais on a aussi "PR" pour ouvrir une Pull Request. On fait :
00:05:46Pour lesquelles de ces branches voulez-vous créer une PR ?
00:05:48Ouvrons des Pull Requests pour tout le monde.
00:05:50Ça va ouvrir un éditeur pour chaque PR afin de
00:05:54rédiger la description. Je vais faire simple.
00:05:57Et voilà, toutes nos PR sont créées. Une fois ouvertes,
00:06:01on peut voir les numéros ici. Numéro 1, numéro 2...
00:06:04ce sont les numéros de PR et leurs messages.
00:06:06On a utilisé les mêmes à chaque fois.
00:06:08Avec l'option "-v" (verbose),
00:06:10on peut aussi voir les URLs de chacune.
00:06:12Jetons un œil à l'une d'elles.
00:06:14Voici la PR pour le Readme. On voit qu'elle ne contient
00:06:18qu'un seul commit et seulement la modif du fichier Readme. C'est isolé.
00:06:23Voici celle qui est empilée.
00:06:24En regardant de plus près, on voit
00:06:28qu'elle a bien créé une pile. La première,
00:06:30la PR du bas, cible la branche principale (main).
00:06:35Et la seconde, que voici, cible la première.
00:06:39L'empilement de branches est géré correctement.
00:06:41Voyons maintenant ce qui se passe quand on intègre un changement.
00:06:43Allons sur la PR du Readme. Disons que
00:06:46tout est bon et fusionnons-la. C'est maintenant sur le dépôt distant.
00:06:49Si on lance "but pull --check", ça va vérifier l'état.
00:06:55On peut aussi faire "but fetch".
00:06:57Le CLI fait aussi des récupérations en arrière-plan régulièrement.
00:07:00Vous l'avez peut-être vu lors de certaines commandes.
00:07:02Il indique qu'une tâche de fond a été lancée. On voit que celle-ci
00:07:06est intégrée en amont. Donc, quand on fait "but pull",
00:07:10il va récupérer les nouvelles infos.
00:07:13Il va rebaser nos autres branches et retirer la branche
00:07:16déjà intégrée. On voit qu'elle a été supprimée localement.
00:07:19Celle-là est terminée,
00:07:22les autres ont été rebasées pour être à jour, et on peut
00:07:25les repousser si on le souhaite. À tout moment,
00:07:29si vous voulez revenir à Git classique, faites "but tear down".
00:07:33Ça vous demandera de choisir une de vos branches.
00:07:36Par défaut, il choisit la première branche sur laquelle vous étiez,
00:07:39mais vous gardez toutes les branches sur lesquelles on travaillait.
00:07:43C'est juste que Git classique ne peut en gérer qu'une à la fois.
00:07:47Utilisez "setup" et "tear down" pour entrer ou sortir du mode Git Brother.
00:07:50Pratique pour gérer plusieurs branches ou revenir aux outils Git classiques.
00:07:55Notez qu'en mode Git Brother, la plupart des commandes Git
00:08:00fonctionnent toujours. Un "git show" donnera le même résultat.
00:08:04Idem pour un "git log".
00:08:08Toutes les commandes de lecture fonctionnent parfaitement.
00:08:13C'est vraiment la gestion des commits que nous gérons pour vous.
00:08:16On peut aussi changer de branche directement avec Git : Git Brother le verra
00:08:21et désactivera ce qu'il était en train de faire.
00:08:24Tout redeviendra normal.
00:08:26Dernière chose : toutes ces commandes ont une
00:08:30version JSON. Pour un statut en JSON, utilisez "--json".
00:08:34Si vous voulez afficher un commit en JSON, c'est possible.
00:08:41Presque toutes les commandes le proposent.
00:08:44Consultez "but help" pour les voir. Presque toutes
00:08:48ont une option "--json" ou "-j".
00:08:52C'est donc très facile de créer des scripts. Plus étonnant,
00:08:56on peut même faire un "diff" et obtenir une version JSON,
00:09:00ce que je trouve vraiment génial.
00:09:01C'était une petite introduction à Git Brother et ses avantages.
00:09:05Vous pouvez l'ajouter à n'importe quel dépôt Git.
00:09:08Lancez "but setup" et commencez à utiliser ces commandes.
00:09:12Profitez de l'export JSON, gérez plusieurs branches à la fois,
00:09:15utilisez les branches empilées,
00:09:17l'intégration GitHub et la gestion des PR.
00:09:20Il suffit de l'installer et de lancer les commandes "but".
00:09:24Et si vous voulez revenir à Git seul,
00:09:26même si la plupart des commandes Git marchent encore ici,
00:09:29faites un "tear down" ou un "checkout" pour tout nettoyer.
00:09:33N'hésitez pas à l'essayer dès aujourd'hui.
00:09:35Rendez-vous sur [gitbrother.com/cli](https://www.google.com/search?q=https://gitbrother.com/cli) pour le télécharger.
00:09:39Rejoignez notre Discord pour nous donner votre avis. Merci !