GIT

Qu'est-ce que c'est  GIT ?

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 stash

Stash

Commandes => Gérer les stashs

CRTL + B

Branch (Création)

Branch (Suppression)

https://ohmygit.org/

GIT

By Sydelab - Shaping Tomorrow