SlideShare une entreprise Scribd logo
Utilisation de git
dans Delphi
Webinaire du 22 décembre 2020
PRÉSENTATEUR
MVP Embarcadero
Prestataire informatique freelance et formateur Delphi
CV et contacts :
https://www.linkedin.com/in/patrickpremartin/
Blog Delphi/Pascal :
https://developpeur-pascal.fr
Outils Embarcadero
Les meilleurs outils de développement multi-
plateformes. Créez une fois et déployez des
applications modernes sur chaque plateforme.
Support Technique
Nos techniciens sont à votre service à tout
moment pour répondre à vos questions et
vous fournir des informations sûres.
Distributeur Officiel
Partenaire exclusif de Embarcadero
Technologies, largement reconnu pour
ses produits de programmation primés.
B A R N S T E N
QUI
Site : https://www.barnsten.com – Contacts FR : equipe@barnsten.com
NOTRE
Société de prestations informatiques.
Edition de sites Internet, logiciels, vidéos et livres.
Centre de formation référencé sur Datadock.
Infos et contacts : https://olfsoftware.fr
Formations en entreprise : https://se-former-a-delphi.fr
Formations en ligne : https://apprendre-delphi.fr
O L F S O F T W A R E
AU
• Introduction
• Notions sur Git
• Installation et configuration de Git
• Travail sur un projet local
• Travail sur un projet distant
• Utilisation avec Github
• Participer à un projet open source
• Conclusion
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Quand on développe seul, la gestion de sources
et de versions n’est pas toujours la priorité.
C’est surtout vrai chez « les anciens » qui
n’avaient pas d’outils dédiés lors de leur
apprentissage de l’informatique et n’en ont pas
ressenti le besoin depuis. Un ZIP ou la copie d’un
dossier suffisent pour les archivages.
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Elle le devient quand les choses se compliquent :
travail à plusieurs sur le même projet, travail
depuis plusieurs appareils à la fois.
La gestion des ZIP et des copies de fichiers
devient un trop gros casse tête pour éviter les
erreurs.
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Dans ce cas il est fortement recommandé de
passer par une solution centralisée pour gérer ses
fichiers.
On parle de VCS (version control system) ou de
SCM (source control management).
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Vous avez probablement déjà entendu parler de
l’un de ces trois là : Subversion (SVN), Mercurial
et Git.
Ils sont pris en charge nativement dans l’IDE de
Delphi et C++Builder.
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Dans cette session nous allons voir git, à quoi il
sert, comment s’en servir pour des projets
personnels, internes à une organisation mais
aussi tournés pour du partage avec la
communauté de développeurs.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git a été créé par Linus Torvalds en 2005 pour
gérer le noyau de Linux et ses dépendances.
En 10 ans il est devenu le système le plus
populaire dans le milieu open source et
maintenant professionnel.
Plus d’infos sur https://fr.wikipedia.org/wiki/Git
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git est un gestionnaire de versions de codes
sources mais pas seulement.
De base il sert à archiver les sources de projets et
pouvoir évoluer dans le temps pour chaque
fichier qu’il prend en charge.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git permet également de gérer des séries de
modifications, les fusionner, les annuler sous la
forme de transactions et de branches.
Interfacé avec un système d’intégration continue
il permet d’automatiser la génération de plusieurs
versions de vos projets quasiment sans
intervention humaine.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
L’outil se présente sous la forme d’un programme
console classique. Tout se fait en ligne de
commande ou par l’intermédiaire d’une couche
graphique proposée par de nombreux éditeurs.
Pour utiliser git il faut en connaître la philosophie
et les commandes de base.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git travaille par projet.
Un projet correspond à un dossier, son
arborescence descendante et certains fichiers qui
s’y trouvent.
Les dépôts de code ou repository correspondent
à un stockage quelque part de « projets git ».
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git n’a pas de distinction entre serveur ou client.
C’est le même programme qui permet de
synchroniser des données dans un dossier local
comme avec un dépôt de code en cloud.
Voici quelques hébergeurs de dépôts de code
connus : GitHub, GitLab, BitBucket, CodeCommit,
Assembla, SourceForge…
© Patrick Prémartin / developpeur-pascal.fr
GIT :
On peut aussi créer notre propre dépôt de code,
soit avec juste git (un peu de ssh sur une
distribution Linux peut aider), soit en utilisant
l’une des interfaces graphiques proposées par
exemple par GitLab, Gogs, Gitea…
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Un projet git est composé de branches. Par
défaut on est généralement sur la branche
« master ».
On peut en créer d’autres à partir de n’importe
quelle modification puis les manipuler pour les
fusionner et créer une multitude de versions du
même projet.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Le système de branches permet par exemple de
gérer les versions de production, test et
développement d’un logiciel.
On peut ajouter une branche par développeur sur
chacune d’entre elles ou une branche de
correctifs.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Les branches peuvent ensuite être regroupées
lors d’une opération de fusion qui permet de
gérer les éventuels conflits (fichiers modifiées au
même endroit et ne contenant pas les mêmes
modifications).
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Illustration provenant du tutoriel de Atlassian sur
https://www.atlassian.com/fr/git/tutorials/using-
branches
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Le commit est la base de Git. Comme pour les
bases de données gérant des transactions, c’est
un regroupement de modifications de fichiers
validées et enregistrées « à vie » dans le projet.
Chaque commit a une référence unique et un
commentaire.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Les branches sont composées de commit dans
leur ordre de validation.
Les commit sont inaltérables.
Toute opération sur un projet git fait l’objet d’un
commit.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Dans un projet git (hors fichiers de git) il existe
trois types de fichiers : ignoré, pas encore pris en
compte, pris en compte.
Les fichiers pris en compte sont soit modifiés
(créé/supprimé/modifié), en attente de validation
ou validés dans la branche en cours.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
En pratique on a les fichiers sur lesquels on
travaille, dans la branche en cours du projet, et
les fichiers qu’on a regroupés pour le prochain
commit.
Ceux-ci se trouvent dans un groupe appelé
staging area. Le commit suivant validera la staging
area.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
En plus du commit il existe aussi une zone
tampon dans laquelle on peut faire un équivalent
du commit mais elle est réversible puisque
validée uniquement localement.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git est fiable mais comme pour tout logiciel avec
une base de données on n’est pas à l’abri d’une
anomalie.
Il est fortement recommandé de faire des
sauvegardes de vos dépôts de code / projets dans
les différentes versions qui vous intéressent (par
exemple chaque version publiée de vos logiciels).
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Tout ce qui se trouve dans un dépôt git est visible
par toutes les personnes ayant un accès à ce
projet.
Il n’y a pas de suppression possible de données !
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Ne créez jamais de dépôt public en cloud pour
vos projets internes. Créez les en mode privé.
NE STOCKEZ JAMAIS de mots de passes dans vos
sources ou de clés (signature/chiffrement) avec
vos projets : ils seraient visibles sur les dépôts
pour n’importe qui ayant accès un jour dessus.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
D’une manière générale restez méfiants envers
les plateformes d’hébergement de dépôts de
codes en ligne. Du jour au lendemain elles
peuvent fermer, couper les accès, tomber en
panne, se faire pirater, boguer et publier en
public des projets privés…
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Soyez conscients des avantages mais aussi des
risques.
Limitez les dépendances autant que possible.
Faites des backups chez vous (et en dehors bien
entendu) !
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Ne faites pas de commit de fonctionnalités que
vous n’avez pas testées.
Quand vous travaillez à plusieurs ne synchronisez
pas de projet avec des commit non testés pour
éviter que toute l’équipe se trouve avec un
logiciel inutilisable !
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Pour nous l’installation sous Windows est
suffisante. Il suffit de télécharger et installer
https://gitforwindows.org
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Une fois installé il faut s’identifier auprès de git
pour « signer » chaque modification. Ces données
sont accessibles à vie pour les personnes ayant
accès au projet.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
• Enregistrez votre nom et l’adresse email à
laquelle vous contacter. Si vous participez à un
projet public, mettez une adresse avec un bon
antispams et antivirus…
• Enregistrez une clé SSH si vous voulez utiliser
ce protocole pour travailler. Pas pris en charge
par RAD Studio pour le moment mais pratique
pour les saisies en ligne de commande.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Installez une surcouche graphique pour vous
simplifier la vie : TortoiseGit, SourceTree,
GitExtensions, …
Si vous travaillez avec Github, il est recommandé
de passer par Github desktop pour simplifier vos
opérations sur les projets associés à votre
compte.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Du côté de RAD Studio il suffit de remplir les
informations disponibles dans « Outils / Options /
Contrôle de version / Git »
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Pas besoin d’avoir un serveur pour travailler avec
git. Il suffit d’un dossier dans lequel on l’active
pour travailler.
Git n’est pas un logiciel client / serveur.
Il fonctionne de façon autonome, sans réseau,
tant qu’on n’a pas besoin de se synchroniser avec
des projets gérés sur un hébergement ailleurs.
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
• Créer un dossier ou ouvrir un dossier existant
• Activer git dedans
• Travailler sur les fichiers du dossier
La gestion de versions et de branches est
pleinement fonctionnelle.
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Si on travaille à plusieurs ou avec plusieurs
ordinateurs sur les mêmes projets il est
préférable d’avoir un dépôt de code sur un
serveur (sur Internet, un NAS ou un ordinateur du
réseau local).
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
De base il suffit que git soit installé et accessible
de l’extérieur, par exemple avec ssh.
De nombreux tutoriels existent sur Internet. Pour
la démo j’ai suivi celui-ci sur un serveur VPS chez
OVH équipé d’Ubuntu :
https://linuxize.com/post/how-to-setup-a-git-
server/
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Une fois la partie serveur configurée, il suffit d’y
créer un projet sous forme de dépôt de code
distant. Ca génère un fichier d’extension git qui
sert pour les synchronisations.
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Le dépôt distant (appelé REMOTE) est la base de
stockage. Tout le travail se fait en local, y compris
la gestion du dépôt distant.
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Les commandes à connaître sont :
• CLONE pour créer le projet localement à partir
d’un projet distant (et de son fichier .git)
• PULL (FETCH + MERGE) pour mettre à jour la
branche activée du projet local à partir du
dépôt distant.
• PUSH pour envoyer nos COMMIT (et autres
modifs) sur le dépôt distant.
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Notez que les fichiers et modifications non
validées restent en local.
Globalement seules les modifications ayant fait
l’objet d’un COMMIT sont synchronisées.
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
GitHub est l’un des nombreux services
d’hébergement de projets. Plutôt orienté open
source GitHub permet aussi de stocker des
projets privés.
En plus de la partie sources, GitHub propose aussi
la gestion de tickets d’incidents, de versions, un
wiki par projet et l’hébergement de sites web.
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
GitHub et les autres plateformes équivalentes ont
l’avantage de proposer un peu plus qu’un simple
archivage de projets git en ligne et accessible
partout.
Outre l’utilisation pour nos propres projets on
peut collaborer sur d’autres et avec une
multitude de développeurs.
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
Pour nos projets le fonctionnement est le même
que sur un serveur à nous.
Pour collaborer sur d’autres projets il y a
quelques subtilités.
© Patrick Prémartin / developpeur-pascal.fr
CONTRIBUER
Les projets open sources sont attachés à un
compte unique.
Certains autorisent un accès direct, d’autres
préfèrent par mesure de précaution ne pas laisser
libre accès et fonctionnent par soumission de
groupes de modifications.
© Patrick Prémartin / developpeur-pascal.fr
CONTRIBUER
Pour les premiers, lorsqu’on fait partie des
développeurs ayant un accès complet, pas de
différence avec le travail habituel. On clone le
projet, on crée une branche de travail et quand
on a fini on intègre nos modifications au projet
global.
© Patrick Prémartin / developpeur-pascal.fr
CONTRIBUER
Pour les seconds il n’est pas possible de
soumettre directement nos modifications sur le
projet de base. On a deux étapes
supplémentaires.
© Patrick Prémartin / developpeur-pascal.fr
CONTRIBUER
Comme pour le reste il existe de nombreux
tutoriels en ligne sur le sujet, notamment sur
GitHub et ses pairs.
Vous pouvez vous inspirer de celui-ci :
https://akrabat.com/the-beginners-guide-to-
contributing-to-a-github-project/
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
Première étape pour participer à un projet public
: faire un fork.
Ca consiste en une copie du projet d’origine sur
notre compte.
On travaille ensuite sur ce projet comme
n’importe lequel des nôtres.
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
Dernière étape de la participation à un projet
open source : la soumission de nos modifications.
Cette opération s’appelle un PULL REQUEST.
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
Le PULL REQUEST se fait au niveau de notre
repository, à partir de notre branche de travail
que l’on va pouvoir soumettre pour approbation
à une branche du projet d’origine.
Charge au gestionnaire de ce projet d’accepter ou
refuser notre lot de modifications.
© Patrick Prémartin / developpeur-pascal.fr
CONCL
© Patrick Prémartin / developpeur-pascal.fr
Je suis loin d’avoir tout dit sur git et son utilisation
en général.
Vous avez les manipulations de base et pouvez
vous documenter avec les très nombreuses
ressources disponibles en ligne.
CONCL
© Patrick Prémartin / developpeur-pascal.fr
Même si vous travaillez seul, en local, sur vos
projets, habituez-vous à travailler avec un VCS…
et pensez à faire quand même une sauvegarde de
vos fichiers à chaque fois que vous sortez une
version de vos logiciels, c’est toujours plus sûr
d’avoir une version figée quelque part au cas où.
CONCL
© Patrick Prémartin / developpeur-pascal.fr
S’il y avait un dernier conseil à vous donner suite
à cette session de présentation ce serait de vous
familiariser avec git ou d’autres outils de gestion
de version.
Tôt ou tard vous en aurez besoin.
PLUS
© Patrick Prémartin / developpeur-pascal.fr
Pour des ressources complémentaires,
télécharger cette présentation et accéder aux
exemples, rendez-vous sur :
https://developpeur-pascal.fr/p/_400a-
webinaire-du-22-decembre-2020-utilisation-de-
git-dans-delphi.html
(RE)VOIR
© Patrick Prémartin / developpeur-pascal.fr
La rediffusion de ce webinaire devrait être
disponible sur la chaîne YouTube de Barnsten :
https://www.youtube.com/c/BarnstenFrance/vid
eos
Vous y trouverez également d’autres vidéos dont
une formation complète aux bases de la
programmation avec Delphi en VCL et FMX.
PROCHAINS
© Patrick Prémartin / developpeur-pascal.fr
La liste des sujets et des dates pour 2021 sera
communiquée courant janvier.
Surveillez vos emails.
Les rediffusions, détails et inscriptions sont aussi
disponibles depuis https://developpeur-
pascal.fr/p/_6007-webinaires.html
LIVRES
© Patrick Prémartin / developpeur-pascal.fr
Des livres sur le développement avec Delphi
sortent régulièrement. Voici les 3 derniers :
• Delphi GUI programming with FireMonkey
• Delphi Event-based and Asynchronous
Programming
• Object Pascal Handbook (Delphi 10.4 Sydney
Edition)
Liste complète sur https://delphi-books.com/
QUESTIONS
© Patrick Prémartin / developpeur-pascal.fr
CONTACTEZ NOUS

Contenu connexe

Tendances

1601896849 rapport fluttercopie
1601896849 rapport fluttercopie1601896849 rapport fluttercopie
1601896849 rapport fluttercopie
RamiJOUDI2
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
Nazih Heni
 
Gestion de soutenance
Gestion de soutenanceGestion de soutenance
Gestion de soutenance
VatosoaRazafindrazak
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
Lina Meddeb
 
Applications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteApplications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLite
Ahmed-Chawki Chaouche
 
Rapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc InformatiqueRapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc Informatique
Eric Maxime
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
Lilia Sfaxi
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Raoua Bennasr
 
Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...
Mohamed Boubaya
 
Conception et réalisation d’un robot de supervision : acquisition et échange ...
Conception et réalisation d’un robot de supervision : acquisition et échange ...Conception et réalisation d’un robot de supervision : acquisition et échange ...
Conception et réalisation d’un robot de supervision : acquisition et échange ...
BADDOU mohamed
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
Georges Amichia
 
Présentation du stage echatibi sofian
Présentation du stage echatibi sofianPrésentation du stage echatibi sofian
Présentation du stage echatibi sofian
Sofiane Echatibi
 
Conception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmationConception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmation
Aymen Bouein
 
Presentation PPT-Marwen ben khalifa
Presentation PPT-Marwen ben khalifaPresentation PPT-Marwen ben khalifa
Presentation PPT-Marwen ben khalifa
Marwen Ben Khalifa
 
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
fehmi arbi
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
Nassim Bahri
 
Applications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services WebApplications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services Web
Ahmed-Chawki Chaouche
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
Lilia Sfaxi
 
Conception et développement d’un Système de réservation en ligne
Conception et développement d’un Système de réservation en ligneConception et développement d’un Système de réservation en ligne
Conception et développement d’un Système de réservation en ligne
Aydi Nébil
 
Presentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicauxPresentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicaux
Fehmi Arbi
 

Tendances (20)

1601896849 rapport fluttercopie
1601896849 rapport fluttercopie1601896849 rapport fluttercopie
1601896849 rapport fluttercopie
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
Gestion de soutenance
Gestion de soutenanceGestion de soutenance
Gestion de soutenance
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
 
Applications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteApplications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLite
 
Rapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc InformatiqueRapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc Informatique
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 
Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...
 
Conception et réalisation d’un robot de supervision : acquisition et échange ...
Conception et réalisation d’un robot de supervision : acquisition et échange ...Conception et réalisation d’un robot de supervision : acquisition et échange ...
Conception et réalisation d’un robot de supervision : acquisition et échange ...
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
 
Présentation du stage echatibi sofian
Présentation du stage echatibi sofianPrésentation du stage echatibi sofian
Présentation du stage echatibi sofian
 
Conception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmationConception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmation
 
Presentation PPT-Marwen ben khalifa
Presentation PPT-Marwen ben khalifaPresentation PPT-Marwen ben khalifa
Presentation PPT-Marwen ben khalifa
 
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
 
Applications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services WebApplications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services Web
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
 
Conception et développement d’un Système de réservation en ligne
Conception et développement d’un Système de réservation en ligneConception et développement d’un Système de réservation en ligne
Conception et développement d’un Système de réservation en ligne
 
Presentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicauxPresentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicaux
 

Similaire à Utilisation de git avec Delphi

WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
Stéphane HULARD
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
Thibault Vlacich
 
Diffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jourDiffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jour
pprem
 
Comment développer pour Linux avec Delphi
Comment développer pour Linux avec DelphiComment développer pour Linux avec Delphi
Comment développer pour Linux avec Delphi
pprem
 
Le social coding pour la Creative Technologie
Le social coding pour la Creative TechnologieLe social coding pour la Creative Technologie
Le social coding pour la Creative Technologie
UX REPUBLIC
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
Thierry Gayet
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
msadouni
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
Christian Charreyre
 
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Publicis Sapient Engineering
 
Git & Rstudio vincent guyader
Git & Rstudio vincent guyaderGit & Rstudio vincent guyader
Git & Rstudio vincent guyader
Vincent Guyader
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
Jean-Baptiste Vigneron
 
les commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfles commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdf
SimpleLearn1
 
Faire des applications web avec Delphi
Faire des applications web avec DelphiFaire des applications web avec Delphi
Faire des applications web avec Delphi
pprem
 
Phigrate
PhigratePhigrate
Phigrate
Manuel HERVO
 
Déploiement et débogage à distance
Déploiement et débogage à distanceDéploiement et débogage à distance
Déploiement et débogage à distance
pprem
 
Adama Coulibaly.pptx
Adama Coulibaly.pptxAdama Coulibaly.pptx
Adama Coulibaly.pptx
IdrissaDembl
 
Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !
pprem
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
Nicolas wallerand
 
Gestion des drifts Terraform avec la méthode GitOps
Gestion des drifts Terraform avec la méthode GitOpsGestion des drifts Terraform avec la méthode GitOps
Gestion des drifts Terraform avec la méthode GitOps
Katia HIMEUR TALHI
 

Similaire à Utilisation de git avec Delphi (20)

WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
Diffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jourDiffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jour
 
Comment développer pour Linux avec Delphi
Comment développer pour Linux avec DelphiComment développer pour Linux avec Delphi
Comment développer pour Linux avec Delphi
 
Le social coding pour la Creative Technologie
Le social coding pour la Creative TechnologieLe social coding pour la Creative Technologie
Le social coding pour la Creative Technologie
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
 
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
 
Git & Rstudio vincent guyader
Git & Rstudio vincent guyaderGit & Rstudio vincent guyader
Git & Rstudio vincent guyader
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
 
les commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfles commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdf
 
Faire des applications web avec Delphi
Faire des applications web avec DelphiFaire des applications web avec Delphi
Faire des applications web avec Delphi
 
Phigrate
PhigratePhigrate
Phigrate
 
Déploiement et débogage à distance
Déploiement et débogage à distanceDéploiement et débogage à distance
Déploiement et débogage à distance
 
Adama Coulibaly.pptx
Adama Coulibaly.pptxAdama Coulibaly.pptx
Adama Coulibaly.pptx
 
Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529
 
Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Gestion des drifts Terraform avec la méthode GitOps
Gestion des drifts Terraform avec la méthode GitOpsGestion des drifts Terraform avec la méthode GitOps
Gestion des drifts Terraform avec la méthode GitOps
 

Plus de pprem

Using FireMonkey as a game engine
Using FireMonkey as a game engineUsing FireMonkey as a game engine
Using FireMonkey as a game engine
pprem
 
Using Delphi as a no code development environment
Using Delphi as a no code development environmentUsing Delphi as a no code development environment
Using Delphi as a no code development environment
pprem
 
Easy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeyEasy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkey
pprem
 
Utiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéoUtiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéo
pprem
 
Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?
pprem
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitaires
pprem
 
Développer une application pour Android TV avec Delphi
Développer une application pour Android TV avec DelphiDévelopper une application pour Android TV avec Delphi
Développer une application pour Android TV avec Delphi
pprem
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobiles
pprem
 
Gérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et AndroidGérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et Android
pprem
 
Internationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMXInternationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMX
pprem
 
Utiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagesUtiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'images
pprem
 
Embarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilesEmbarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobiles
pprem
 
Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateforme
pprem
 
Faire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCLFaire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCL
pprem
 
Faire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkeyFaire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkey
pprem
 
QR codes et codes à barres sous Delphi
QR codes et codes à barres sous DelphiQR codes et codes à barres sous Delphi
QR codes et codes à barres sous Delphi
pprem
 
Créer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composantCréer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composant
pprem
 
Des solutions de synchronisation de données
Des solutions de synchronisation de donnéesDes solutions de synchronisation de données
Des solutions de synchronisation de données
pprem
 
Découvrez FireDAC pour FMX
Découvrez FireDAC pour FMXDécouvrez FireDAC pour FMX
Découvrez FireDAC pour FMX
pprem
 
Découvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCLDécouvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCL
pprem
 

Plus de pprem (20)

Using FireMonkey as a game engine
Using FireMonkey as a game engineUsing FireMonkey as a game engine
Using FireMonkey as a game engine
 
Using Delphi as a no code development environment
Using Delphi as a no code development environmentUsing Delphi as a no code development environment
Using Delphi as a no code development environment
 
Easy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeyEasy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkey
 
Utiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéoUtiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéo
 
Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitaires
 
Développer une application pour Android TV avec Delphi
Développer une application pour Android TV avec DelphiDévelopper une application pour Android TV avec Delphi
Développer une application pour Android TV avec Delphi
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobiles
 
Gérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et AndroidGérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et Android
 
Internationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMXInternationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMX
 
Utiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagesUtiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'images
 
Embarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilesEmbarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobiles
 
Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateforme
 
Faire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCLFaire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCL
 
Faire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkeyFaire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkey
 
QR codes et codes à barres sous Delphi
QR codes et codes à barres sous DelphiQR codes et codes à barres sous Delphi
QR codes et codes à barres sous Delphi
 
Créer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composantCréer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composant
 
Des solutions de synchronisation de données
Des solutions de synchronisation de donnéesDes solutions de synchronisation de données
Des solutions de synchronisation de données
 
Découvrez FireDAC pour FMX
Découvrez FireDAC pour FMXDécouvrez FireDAC pour FMX
Découvrez FireDAC pour FMX
 
Découvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCLDécouvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCL
 

Utilisation de git avec Delphi

  • 1. Utilisation de git dans Delphi Webinaire du 22 décembre 2020
  • 2. PRÉSENTATEUR MVP Embarcadero Prestataire informatique freelance et formateur Delphi CV et contacts : https://www.linkedin.com/in/patrickpremartin/ Blog Delphi/Pascal : https://developpeur-pascal.fr
  • 3. Outils Embarcadero Les meilleurs outils de développement multi- plateformes. Créez une fois et déployez des applications modernes sur chaque plateforme. Support Technique Nos techniciens sont à votre service à tout moment pour répondre à vos questions et vous fournir des informations sûres. Distributeur Officiel Partenaire exclusif de Embarcadero Technologies, largement reconnu pour ses produits de programmation primés. B A R N S T E N QUI Site : https://www.barnsten.com – Contacts FR : equipe@barnsten.com
  • 4. NOTRE Société de prestations informatiques. Edition de sites Internet, logiciels, vidéos et livres. Centre de formation référencé sur Datadock. Infos et contacts : https://olfsoftware.fr Formations en entreprise : https://se-former-a-delphi.fr Formations en ligne : https://apprendre-delphi.fr O L F S O F T W A R E
  • 5. AU • Introduction • Notions sur Git • Installation et configuration de Git • Travail sur un projet local • Travail sur un projet distant • Utilisation avec Github • Participer à un projet open source • Conclusion © Patrick Prémartin / developpeur-pascal.fr
  • 6. INTROD Quand on développe seul, la gestion de sources et de versions n’est pas toujours la priorité. C’est surtout vrai chez « les anciens » qui n’avaient pas d’outils dédiés lors de leur apprentissage de l’informatique et n’en ont pas ressenti le besoin depuis. Un ZIP ou la copie d’un dossier suffisent pour les archivages. © Patrick Prémartin / developpeur-pascal.fr
  • 7. INTROD Elle le devient quand les choses se compliquent : travail à plusieurs sur le même projet, travail depuis plusieurs appareils à la fois. La gestion des ZIP et des copies de fichiers devient un trop gros casse tête pour éviter les erreurs. © Patrick Prémartin / developpeur-pascal.fr
  • 8. INTROD Dans ce cas il est fortement recommandé de passer par une solution centralisée pour gérer ses fichiers. On parle de VCS (version control system) ou de SCM (source control management). © Patrick Prémartin / developpeur-pascal.fr
  • 9. INTROD Vous avez probablement déjà entendu parler de l’un de ces trois là : Subversion (SVN), Mercurial et Git. Ils sont pris en charge nativement dans l’IDE de Delphi et C++Builder. © Patrick Prémartin / developpeur-pascal.fr
  • 10. INTROD Dans cette session nous allons voir git, à quoi il sert, comment s’en servir pour des projets personnels, internes à une organisation mais aussi tournés pour du partage avec la communauté de développeurs. © Patrick Prémartin / developpeur-pascal.fr
  • 11. GIT : Git a été créé par Linus Torvalds en 2005 pour gérer le noyau de Linux et ses dépendances. En 10 ans il est devenu le système le plus populaire dans le milieu open source et maintenant professionnel. Plus d’infos sur https://fr.wikipedia.org/wiki/Git © Patrick Prémartin / developpeur-pascal.fr
  • 12. GIT : Git est un gestionnaire de versions de codes sources mais pas seulement. De base il sert à archiver les sources de projets et pouvoir évoluer dans le temps pour chaque fichier qu’il prend en charge. © Patrick Prémartin / developpeur-pascal.fr
  • 13. GIT : Git permet également de gérer des séries de modifications, les fusionner, les annuler sous la forme de transactions et de branches. Interfacé avec un système d’intégration continue il permet d’automatiser la génération de plusieurs versions de vos projets quasiment sans intervention humaine. © Patrick Prémartin / developpeur-pascal.fr
  • 14. GIT : L’outil se présente sous la forme d’un programme console classique. Tout se fait en ligne de commande ou par l’intermédiaire d’une couche graphique proposée par de nombreux éditeurs. Pour utiliser git il faut en connaître la philosophie et les commandes de base. © Patrick Prémartin / developpeur-pascal.fr
  • 15. GIT : Git travaille par projet. Un projet correspond à un dossier, son arborescence descendante et certains fichiers qui s’y trouvent. Les dépôts de code ou repository correspondent à un stockage quelque part de « projets git ». © Patrick Prémartin / developpeur-pascal.fr
  • 16. GIT : Git n’a pas de distinction entre serveur ou client. C’est le même programme qui permet de synchroniser des données dans un dossier local comme avec un dépôt de code en cloud. Voici quelques hébergeurs de dépôts de code connus : GitHub, GitLab, BitBucket, CodeCommit, Assembla, SourceForge… © Patrick Prémartin / developpeur-pascal.fr
  • 17. GIT : On peut aussi créer notre propre dépôt de code, soit avec juste git (un peu de ssh sur une distribution Linux peut aider), soit en utilisant l’une des interfaces graphiques proposées par exemple par GitLab, Gogs, Gitea… © Patrick Prémartin / developpeur-pascal.fr
  • 18. GIT : Un projet git est composé de branches. Par défaut on est généralement sur la branche « master ». On peut en créer d’autres à partir de n’importe quelle modification puis les manipuler pour les fusionner et créer une multitude de versions du même projet. © Patrick Prémartin / developpeur-pascal.fr
  • 19. GIT : Le système de branches permet par exemple de gérer les versions de production, test et développement d’un logiciel. On peut ajouter une branche par développeur sur chacune d’entre elles ou une branche de correctifs. © Patrick Prémartin / developpeur-pascal.fr
  • 20. GIT : Les branches peuvent ensuite être regroupées lors d’une opération de fusion qui permet de gérer les éventuels conflits (fichiers modifiées au même endroit et ne contenant pas les mêmes modifications). © Patrick Prémartin / developpeur-pascal.fr
  • 21. GIT : Illustration provenant du tutoriel de Atlassian sur https://www.atlassian.com/fr/git/tutorials/using- branches © Patrick Prémartin / developpeur-pascal.fr
  • 22. GIT : Le commit est la base de Git. Comme pour les bases de données gérant des transactions, c’est un regroupement de modifications de fichiers validées et enregistrées « à vie » dans le projet. Chaque commit a une référence unique et un commentaire. © Patrick Prémartin / developpeur-pascal.fr
  • 23. GIT : Les branches sont composées de commit dans leur ordre de validation. Les commit sont inaltérables. Toute opération sur un projet git fait l’objet d’un commit. © Patrick Prémartin / developpeur-pascal.fr
  • 24. GIT : Dans un projet git (hors fichiers de git) il existe trois types de fichiers : ignoré, pas encore pris en compte, pris en compte. Les fichiers pris en compte sont soit modifiés (créé/supprimé/modifié), en attente de validation ou validés dans la branche en cours. © Patrick Prémartin / developpeur-pascal.fr
  • 25. GIT : En pratique on a les fichiers sur lesquels on travaille, dans la branche en cours du projet, et les fichiers qu’on a regroupés pour le prochain commit. Ceux-ci se trouvent dans un groupe appelé staging area. Le commit suivant validera la staging area. © Patrick Prémartin / developpeur-pascal.fr
  • 26. GIT : En plus du commit il existe aussi une zone tampon dans laquelle on peut faire un équivalent du commit mais elle est réversible puisque validée uniquement localement. © Patrick Prémartin / developpeur-pascal.fr
  • 27. GIT : Git est fiable mais comme pour tout logiciel avec une base de données on n’est pas à l’abri d’une anomalie. Il est fortement recommandé de faire des sauvegardes de vos dépôts de code / projets dans les différentes versions qui vous intéressent (par exemple chaque version publiée de vos logiciels). © Patrick Prémartin / developpeur-pascal.fr
  • 28. GIT : Tout ce qui se trouve dans un dépôt git est visible par toutes les personnes ayant un accès à ce projet. Il n’y a pas de suppression possible de données ! © Patrick Prémartin / developpeur-pascal.fr
  • 29. GIT : Ne créez jamais de dépôt public en cloud pour vos projets internes. Créez les en mode privé. NE STOCKEZ JAMAIS de mots de passes dans vos sources ou de clés (signature/chiffrement) avec vos projets : ils seraient visibles sur les dépôts pour n’importe qui ayant accès un jour dessus. © Patrick Prémartin / developpeur-pascal.fr
  • 30. GIT : D’une manière générale restez méfiants envers les plateformes d’hébergement de dépôts de codes en ligne. Du jour au lendemain elles peuvent fermer, couper les accès, tomber en panne, se faire pirater, boguer et publier en public des projets privés… © Patrick Prémartin / developpeur-pascal.fr
  • 31. GIT : Soyez conscients des avantages mais aussi des risques. Limitez les dépendances autant que possible. Faites des backups chez vous (et en dehors bien entendu) ! © Patrick Prémartin / developpeur-pascal.fr
  • 32. GIT : Ne faites pas de commit de fonctionnalités que vous n’avez pas testées. Quand vous travaillez à plusieurs ne synchronisez pas de projet avec des commit non testés pour éviter que toute l’équipe se trouve avec un logiciel inutilisable ! © Patrick Prémartin / developpeur-pascal.fr
  • 33. GIT : Pour nous l’installation sous Windows est suffisante. Il suffit de télécharger et installer https://gitforwindows.org © Patrick Prémartin / developpeur-pascal.fr
  • 34. GIT : Une fois installé il faut s’identifier auprès de git pour « signer » chaque modification. Ces données sont accessibles à vie pour les personnes ayant accès au projet. © Patrick Prémartin / developpeur-pascal.fr
  • 35. GIT : • Enregistrez votre nom et l’adresse email à laquelle vous contacter. Si vous participez à un projet public, mettez une adresse avec un bon antispams et antivirus… • Enregistrez une clé SSH si vous voulez utiliser ce protocole pour travailler. Pas pris en charge par RAD Studio pour le moment mais pratique pour les saisies en ligne de commande. © Patrick Prémartin / developpeur-pascal.fr
  • 36. GIT : Installez une surcouche graphique pour vous simplifier la vie : TortoiseGit, SourceTree, GitExtensions, … Si vous travaillez avec Github, il est recommandé de passer par Github desktop pour simplifier vos opérations sur les projets associés à votre compte. © Patrick Prémartin / developpeur-pascal.fr
  • 37. GIT : Du côté de RAD Studio il suffit de remplir les informations disponibles dans « Outils / Options / Contrôle de version / Git » © Patrick Prémartin / developpeur-pascal.fr
  • 38. TRAVAILLER Pas besoin d’avoir un serveur pour travailler avec git. Il suffit d’un dossier dans lequel on l’active pour travailler. Git n’est pas un logiciel client / serveur. Il fonctionne de façon autonome, sans réseau, tant qu’on n’a pas besoin de se synchroniser avec des projets gérés sur un hébergement ailleurs. © Patrick Prémartin / developpeur-pascal.fr
  • 39. TRAVAILLER • Créer un dossier ou ouvrir un dossier existant • Activer git dedans • Travailler sur les fichiers du dossier La gestion de versions et de branches est pleinement fonctionnelle. © Patrick Prémartin / developpeur-pascal.fr
  • 40. TRAVAILLER Si on travaille à plusieurs ou avec plusieurs ordinateurs sur les mêmes projets il est préférable d’avoir un dépôt de code sur un serveur (sur Internet, un NAS ou un ordinateur du réseau local). © Patrick Prémartin / developpeur-pascal.fr
  • 41. TRAVAILLER De base il suffit que git soit installé et accessible de l’extérieur, par exemple avec ssh. De nombreux tutoriels existent sur Internet. Pour la démo j’ai suivi celui-ci sur un serveur VPS chez OVH équipé d’Ubuntu : https://linuxize.com/post/how-to-setup-a-git- server/ © Patrick Prémartin / developpeur-pascal.fr
  • 42. TRAVAILLER Une fois la partie serveur configurée, il suffit d’y créer un projet sous forme de dépôt de code distant. Ca génère un fichier d’extension git qui sert pour les synchronisations. © Patrick Prémartin / developpeur-pascal.fr
  • 43. TRAVAILLER Le dépôt distant (appelé REMOTE) est la base de stockage. Tout le travail se fait en local, y compris la gestion du dépôt distant. © Patrick Prémartin / developpeur-pascal.fr
  • 44. TRAVAILLER Les commandes à connaître sont : • CLONE pour créer le projet localement à partir d’un projet distant (et de son fichier .git) • PULL (FETCH + MERGE) pour mettre à jour la branche activée du projet local à partir du dépôt distant. • PUSH pour envoyer nos COMMIT (et autres modifs) sur le dépôt distant. © Patrick Prémartin / developpeur-pascal.fr
  • 45. TRAVAILLER Notez que les fichiers et modifications non validées restent en local. Globalement seules les modifications ayant fait l’objet d’un COMMIT sont synchronisées. © Patrick Prémartin / developpeur-pascal.fr
  • 46. GITHUB : GitHub est l’un des nombreux services d’hébergement de projets. Plutôt orienté open source GitHub permet aussi de stocker des projets privés. En plus de la partie sources, GitHub propose aussi la gestion de tickets d’incidents, de versions, un wiki par projet et l’hébergement de sites web. © Patrick Prémartin / developpeur-pascal.fr
  • 47. GITHUB : GitHub et les autres plateformes équivalentes ont l’avantage de proposer un peu plus qu’un simple archivage de projets git en ligne et accessible partout. Outre l’utilisation pour nos propres projets on peut collaborer sur d’autres et avec une multitude de développeurs. © Patrick Prémartin / developpeur-pascal.fr
  • 48. GITHUB : Pour nos projets le fonctionnement est le même que sur un serveur à nous. Pour collaborer sur d’autres projets il y a quelques subtilités. © Patrick Prémartin / developpeur-pascal.fr
  • 49. CONTRIBUER Les projets open sources sont attachés à un compte unique. Certains autorisent un accès direct, d’autres préfèrent par mesure de précaution ne pas laisser libre accès et fonctionnent par soumission de groupes de modifications. © Patrick Prémartin / developpeur-pascal.fr
  • 50. CONTRIBUER Pour les premiers, lorsqu’on fait partie des développeurs ayant un accès complet, pas de différence avec le travail habituel. On clone le projet, on crée une branche de travail et quand on a fini on intègre nos modifications au projet global. © Patrick Prémartin / developpeur-pascal.fr
  • 51. CONTRIBUER Pour les seconds il n’est pas possible de soumettre directement nos modifications sur le projet de base. On a deux étapes supplémentaires. © Patrick Prémartin / developpeur-pascal.fr
  • 52. CONTRIBUER Comme pour le reste il existe de nombreux tutoriels en ligne sur le sujet, notamment sur GitHub et ses pairs. Vous pouvez vous inspirer de celui-ci : https://akrabat.com/the-beginners-guide-to- contributing-to-a-github-project/ © Patrick Prémartin / developpeur-pascal.fr
  • 53. GITHUB : Première étape pour participer à un projet public : faire un fork. Ca consiste en une copie du projet d’origine sur notre compte. On travaille ensuite sur ce projet comme n’importe lequel des nôtres. © Patrick Prémartin / developpeur-pascal.fr
  • 54. GITHUB : Dernière étape de la participation à un projet open source : la soumission de nos modifications. Cette opération s’appelle un PULL REQUEST. © Patrick Prémartin / developpeur-pascal.fr
  • 55. GITHUB : Le PULL REQUEST se fait au niveau de notre repository, à partir de notre branche de travail que l’on va pouvoir soumettre pour approbation à une branche du projet d’origine. Charge au gestionnaire de ce projet d’accepter ou refuser notre lot de modifications. © Patrick Prémartin / developpeur-pascal.fr
  • 56. CONCL © Patrick Prémartin / developpeur-pascal.fr Je suis loin d’avoir tout dit sur git et son utilisation en général. Vous avez les manipulations de base et pouvez vous documenter avec les très nombreuses ressources disponibles en ligne.
  • 57. CONCL © Patrick Prémartin / developpeur-pascal.fr Même si vous travaillez seul, en local, sur vos projets, habituez-vous à travailler avec un VCS… et pensez à faire quand même une sauvegarde de vos fichiers à chaque fois que vous sortez une version de vos logiciels, c’est toujours plus sûr d’avoir une version figée quelque part au cas où.
  • 58. CONCL © Patrick Prémartin / developpeur-pascal.fr S’il y avait un dernier conseil à vous donner suite à cette session de présentation ce serait de vous familiariser avec git ou d’autres outils de gestion de version. Tôt ou tard vous en aurez besoin.
  • 59. PLUS © Patrick Prémartin / developpeur-pascal.fr Pour des ressources complémentaires, télécharger cette présentation et accéder aux exemples, rendez-vous sur : https://developpeur-pascal.fr/p/_400a- webinaire-du-22-decembre-2020-utilisation-de- git-dans-delphi.html
  • 60. (RE)VOIR © Patrick Prémartin / developpeur-pascal.fr La rediffusion de ce webinaire devrait être disponible sur la chaîne YouTube de Barnsten : https://www.youtube.com/c/BarnstenFrance/vid eos Vous y trouverez également d’autres vidéos dont une formation complète aux bases de la programmation avec Delphi en VCL et FMX.
  • 61. PROCHAINS © Patrick Prémartin / developpeur-pascal.fr La liste des sujets et des dates pour 2021 sera communiquée courant janvier. Surveillez vos emails. Les rediffusions, détails et inscriptions sont aussi disponibles depuis https://developpeur- pascal.fr/p/_6007-webinaires.html
  • 62. LIVRES © Patrick Prémartin / developpeur-pascal.fr Des livres sur le développement avec Delphi sortent régulièrement. Voici les 3 derniers : • Delphi GUI programming with FireMonkey • Delphi Event-based and Asynchronous Programming • Object Pascal Handbook (Delphi 10.4 Sydney Edition) Liste complète sur https://delphi-books.com/
  • 63. QUESTIONS © Patrick Prémartin / developpeur-pascal.fr