GIT
Qu'est-ce que c'est GIT ?
C'est un logiciel libre de gestion de versions créé en 2005 par Linus Torvalds
Conçu pour être performant, flexible et sécurisé
Git est de loin le système de contrôle de version le plus largement utilisé aujourd'hui.

Conccurents :

VCS
Version Control System
Permet de stocker un ensemble de fichiers en conservant la chronologie de toutes les modifications qui ont été effectuées dessus.
- Non distribué (SVN, CVS) : Le repo master est sur le serveur, tous les commits partent sur le serveur
- Distribué (GIT, Mercure, Bitkeeper) : Le repo master est sur le serveur mais chaque développeur a une copie de ce repo sur sa machine
Utilisation en locale
- Hors ligne
- Les commits locaux sont accessibles qu'à vous
- La majorité des opérations sur le répo se passent en locale d'où leurs rapidités
- La vérification des commits en locales avant de push en remote
Vocabulaire
Repository
- Une collection de fichiers avec leurs historiques
- Soit en locale soit à distance

Branch
- Une branche est un pointeur sur un commit . La branche par défaut est la master.
- C'est une façon d'organiser l'historique des travaux

Branch (Utilisation)
- Une branche est un pointeur sur un commit . La branche par défaut est la master.
- C'est une façon d'organiser l'historique des travaux
- Elle permet d'isoler les travaux et laisser ceux qui sont incomplets.
- Permet de partager les travaux avec l'ensemble de l'équipe
Git ignore
Pour rendre des fichiers intraçable par git
// .gitignore file
.idea/
*.iml
*.iws
*.eml
out/
.DS_Store
.svn
log/*.log
tmp/**
node_modules/Merging
- Combiner une ou plusieurs branches dans la branche courante
- Autoriser l'intégration des changements dans la branche courante
- Les autre branches ne sont pas affectés

Clone
- Copier le répertoire à distance en locale
- Les répertoires clonés peuvent s'échanger les modifications
- Les commits sont toujours locaux, pour les envoyés au répertoire distant il faut les push

Fetch
- Récupérer les changements à distance sur le répertoire locale
- Après le fetch, une action de merge ou de rebase doit être prévue pour intégrer les modifications sur le projet

Pull

Commit
- Une image de votre repository à un temps T
- Elle a un numéro de version unique
- Trace l'historique du commit basé dessus

Push
- Prend les commits locaux pour les envoyer au serveur à distance
- Merge ces derniers dans le répertoire distant
- Il merge s'il y a pas de conflits sinon il demandera à faire une résolution de conflits

Push


Don't Push force

Stash
- Enregistre les modifications du répertoire de travail dans une pile loin de toute branche
- On peut appliquer le contenu d'un stash sur les branches locales quand on veut

Workflow GIT

Git extension


Clone


CRTL + Down
Pull
Commit

Ajouter un message
CTRL + Space

Push

CRTL + UP
# c:\REP_APP\js-ts-tp>git stash push --message "my stash"
# c:\REP_APP\js-ts-tp>Saved working directory and index state On master: my stash
# c:\REP_APP\js-ts-tp>git stash list
# c:\REP_APP\js-ts-tp>stash@{0}: On master: my stashStash

Commandes => Gérer les stashs
CRTL + B


Branch (Création)
Branch (Suppression)


https://ohmygit.org/
GIT
By Sydelab - Shaping Tomorrow
GIT
- 258