Affichage des articles dont le libellé est Fork. Afficher tous les articles
Affichage des articles dont le libellé est Fork. Afficher tous les articles

mardi 7 mars 2023

Git Fork, comment faire un Amend au dernier Commit ?

Vous venez de faire un Commit et Oups, c'est balo, vous avez oubliez la doc, ou de commiter le fichier README.md, un autre détails peut vous avoir échappé. Vous souhaitez faire un Amend, c'est à dire à ajout au dernier Commit mais vous hésitez car la dernière fois cela ne s'est pas bien passé.

Alors, allons-y trouvons la solution pour faire Amend propre au dernier commit.

Vous n'êtes pas sans connaitre le fabuleux outil Fork interface de commande graphique au dessus de Git et présenté lors de cet article :

How to Delete commits from a branch in Git - Git the Final Ultimate

Lorsque vous faites un Amend (ajout) au dernier Commit, Git créé un nouveau commit et vous vous retrouvez avec la branche master en avant de la branche origin/master, du coup Git vous interdit de commiter à nouveau.

Pour supprimer le "zigouigoui" où est placé la branche origin/master et replacer le tout sur le dernier  commit amendé c'est bouton droit sur la branche master :

Sur la branche master : Push 'master' to 'origin'

Push 'master' to 'origin' puis : 

Force push pour éviter de créer une branche
Force push pour éviter de créer une branche

Cocher la case 'Force push'.

Voilà, à partir de là, tout va rentrer dans l'ordre, le "zigouigoui" avec la branche 'origin/master' va disparaître et vous allez retrouver votre fil de développement dans votre branche.

Cela signifie que, comme vous avez apparemment "raté votre commit", en oubliant quelque chose ... et bien Git vous laisse faire plusieurs amends pendant que les autres feront éventuellement des commit sur la branche si vos prochains amends venaient être en conflit avec la branche vous devrez faire vous même le merge, c'est logique.

Merci qui ? Merci Fork.

lundi 16 août 2021

How to Delete commits from a branch in Git - Git the Final Ultimate

In Git you don't have the straight command like to direct "delete a commit" but you can do like by deleting the concernig part of the local branch the commits are on.

Using Fork (wonderfull tool around git)  you should do two or tree things (or in Git with the commands you will find) :

  • first you "Reset HEAD to here" you place yourself where you want to be in remote branch after you will suppress the commits you don't want anymore,.then you choose "Hard Discard all local changes" :
Git delete commit with Fork
Git delete commit with Fork
  • secondly you can "delete the local branch" with the commits you don't want anymore.
  • Then you can "push to origin" where you are, you must choose "force push"...

This is not really simple, you have to understand the "Git" way of doing things, but at the end this is the most powerful tool ;-)

Il y a un dessin important et récapitulatif des commandes Git que l'on doit à GitLab :

Git Data Transport Commands

Concernant Git et la difficulté qu'il peut y avoir à prendre en main cet outil puissant de gestion de configuration logicielle. Je voulais noter ici un article d'un intérêt tout particulier. Il met en garde concernant la commande Pull de Git en utilisant cet angle pour aborder un cas d'utilisation de Git en groupe dans un groupe de développeurs :

GitAddict - Attention au pull !

Remenber two other things, fisrt, Fork is the most wonderfull tool to work with Git :

The wonderfull tool to work with Git
The wonderfull tool to work with Git

second, don't forget to go to the beach.

Pour moi, c'est The Git Ultimate, vous avez le magnifique dessin de l'ensemble des commandes Git, d'où elles partent, et où elles arrivent. C'est la base de Git ! 

Vous avez cet article sur la limite de l'utilisation du pull ou de la nécessité de le configurer en Git + fetch ou Git + rebase important pour ne pas perdre le fil de votre développement quand vous êtes plusieurs devs, donc si vous avez besoin de formation vous savez où vous adresser.

Et vous avez ce fantastique outil Fork de Dan et Tanya Pristupov bravo à eux. Et quand je dis fantastique c'est vraiment très au delà de tous les autres outils d'utilisation de Git. Pour moi, c'est mon meilleur collègue préféré qui me l'a fait adopter avec une démonstration de quelques minutes et une fois lancé sur Fork, je n'imagine plus d'utiliser autre chose.

Voilà c'était l'ultimate car avec les éléments que je viens de vous livrer, j'espère que ne n'aurais plus aucun autre article à consacrer à Git et que je vais pouvoir passer à GitHub. 

Je vais aller faire de la doc avec GitHub Page & Jekyll.

Have fun!

lundi 24 août 2020

C'est quoi Grafana ?

C'est incroyable le nombre d'outils dans le Développement Logiciel et le DevOps ! On parle alors de stack quand les uns s'appuient sur les autres, comme dans un empilement. Ici je découvre la stack Grafana, Jenkins, Kubernets, Cosmos. A quoi sert Grafana et qu'elle est la place de Grafana dans tout ça ?

Grafana Labs - Dashboard anything. Observe everything.

Grafana est une communauté de développeurs énorme, aujourd'hui il y a 1 213 contributeurs.

Grafana on Github
Grafana on Github

J'installe rapidement sur mon Windows l'exécutable serveur et je lance mon browser à l'adresse localhost:3000 ça marche tout seul.

Gafana - Install on Windows

Mais Grafana n'est pas tout seul c'est un éco-système qui intègre par exemple Graphite :

Utilisation de "Graphite" dans Grafana

Voici comme Grafana s'intègre dans l'Azure de Microsoft pour la création de Pipeline :

Microsoft - Pipeline CI/CD pour les charges de travail basées sur les conteneurs

Place de Grafana dans la Stack d'outils DevOps
Place de Grafana dans la Stack d'outils DevOps

Dans le cadre de cette Architecture DevOps, Grafana permet de visualiser les alertes et de mieux comprendre les mesures.

On y voit à l'oeuvre la stack : Visual Studio Code, GitHub, Jenkins, Kubernetes, Azure, Azure Monitor, Grafana. Moi je pourrais dire à peu prêt à quoi servent toutes ses briques mais vous avouerez que ça fait une belle pile !


Je poursuis ma découverte par les fundamentals de Grafana. L'angle de l'architecture devops que j'ai choisi pour la découverte de Grafana n'est pas le plus facile mais on a là la meilleure utilisation de Grafana intégré dans une stack DevOps :

Grafana fundatmentals

Pour les prérequis, il me faut Docker, Docker Compose et Git, rien de moins ...
Pour Docker, il faut Hyper-V.

Install de Hyper-V pour Windows

En cliquant sur "Add features".

The processor does not have required virtualization capabilities

Bref, pour moi ça va s'arrêter là ! Bon je trouve une VM avec Hyper-V capabilities, je lance l'installe de Docker ...


Stack Grafana - C'est pas gagné !

Bon, bas pour moi, malheureusement ça s'arrête là ... Grafana !

Autres outils du même genre ... c'est incroyable de voir l'émergence de tant d'outils. Si je trouve un article sur Grafana on va me parler de :

Prometheus

Kibana

Grafana Open Source

Si c'est OpenSource, alors il doit y avoir des sources sans doute sous github, voici donc :

GitHub - Grafana Labs

Là on est dans l'antre de la communauté Grafana ...

Grafana Create Free Cloud Account

Et on peut aller créer ses propres tableaux de bord en créant un compte au sein de Grafana Cloud :

Création d'un Tableau de Bord avec Grafana
Création d'un Tableau de Bord avec Grafana

C'est magnifique cette application écrite en langage Go et Angular.

Un mot de l'équipe Grafana, toujours sur GitHub :

Grafana - Team Members

Le créateur c'est Torkel Ödegaard qui à démarré Grafana en 2014 en partant de Kibana et en faisant un "fork" (une branche depuis le code source).

Mais bon ça ressemble à notre solution qui est toute fois beaucoup plus simple ... et la notre est en C# .NET avec ASP.NET Core Framework, c'est un peu mieux que du Go !

GitHub - DataMonitoring - Universal Dashboard

CQFD !