Git: Un push suffit!

Git: Un push suffit!

  • Et si la machine sur laquelle j'ai commencé ce projet tombait en panne?

  • Et si je voulais continuer de travailler depuis une autre machine?

  • Et si je voulais qu'un autre regarde(révise) mon code pour me donner son avis?

Et bien un git push suffira pour cela!

Salut à toi et bienvenue pour cette introduction à Git par la pratique!

Objectif

Notre objectif est de mettre en place une routine permettant avec notre projet de pouvoir:

  1. Travailler sur son code depuis n'importe quelle machine
  2. Collaborer avec d'autres

Pour y arriver, nous allons utiliser Git, un outil de gestion de versions.

Définition

Git est un logiciel permettant de suivre les modifications sur un ensemble de fichiers(un projet)

Git est un système de gestion de versions(de code source) de type distribué(la base de code est distribuée à tous ceux pouvant la lire).

Une fois initialisé, Git créait une branche(une vesion du projet) par défaut master.

Une fois initialisé, Git créait et exploite 3 espaces de travail pour tracker les modifications sur un ou plusieurs fichiers de la base de code.

  • Un repertoire de travail,
  • Un index,
  • Un pointeur sur le dernier commit

Un commit est un point dans l'historique figeant la version des fichiers du projet.

Toutes les manipulations suivantes reviennent en fait à modifier la version du code source sur un ou plusieurs des espaces de travail de Git.

Avant de continuer…

Pour pouvoir exploiter la puissance de Git, tu dois tout d'abord l'installer sur ta ou tes machines. Cette procédure dépend du systême d'exploitation de la machine en question:

  • Pour installer Git sur un Mac, suis ce lien
  • Pour installer Git sur Linux, suis ce lien
  • Pour installer Git sur Windows, suis ce lien

À ce stade, Git est installé et prêt pour votre premier projet. Il est donc temps d'essayer d'atteindre notre objectif.

1 - Travailler sur son code depuis n'importe quelle machine

Pour chaque projet(base de code) pour lequel nous souhaitons permettre l'accès de n'importe quelle machine, sera question de le créer(il doit être contenu dans un dossier qui servira de conteneur à Git) puis d'adopter la routine suivante.

Supposons que notre projet est un site web:

  1. Créons le dossier du projet: site web pour moi

  2. Initialisons Git sur le projet:

    • on ouvre le terminal sur dans le dossier du projet
    • on tape la commande git init
  3. Figer cette version de nos fichiers avec un commit

    • on passe notre version du repertoire de travail à l'index avec
      git add .
    • on configure notre email git
      git config --global user.email "$votre_addresse_email"
    • on configure ensuite notre nom sur git avec
      git config --global user.name "$votre_nom"
    • on créait un instantanné de la version actuelle avec
      git commit -m "Version initiale"
      veuillez remplacer $votre_nom et $votre_addresse_email convenablement.
  4. Sauvegarder le projet dans un dépôt

    • on commence par créer gratuitement un compte sur github.com, gitlab.com ou bitbucket.com qui sont des prestataires Git sur le cloud
    • on va ensuite créer un dépôt depuis notre compte github(vous pouvez faire de même sur gitlab ou bitbucket)
    • on va ensuite utiliser les instructions affichée après la création du projet pour lier notre projet local avec le dépôt pour ma part, git remote add origin https://github.com/alkaj/movie-cover
  5. Lire le dépot depuis une machine

    • Commencez par vérifier que git est bien installé sur cette machine avec
      git --version
    • Avec le lien vers du depot cloner notre projet
      git clone https://github.com/alkaj/movie-cover
  6. Effectuer et figer les modifications

    • Après avoir apporté les modifications voulues à notre code, on va:
      1. les ajouter à l'index git avec git add .
      2. les figer avec un commit git commit -m "Ajout de nouvelles images"
  7. Mettre à jour le dépôt
    En effectuant la commande git clone ... plus haut, git a créé notre projet et a directement configuré le dépot origin sur le lien duquel nous avons cloné.

  8. on va vérifier que le dépôt remote est configuré avec
    git remote -v

  9. Recommencer depuis l'étape 4 de n'importe quelle machine

2 - Collaborer avec d'autres

Pour ceci, il suffit de partager le lien de notre dépôt ou d'en obtenir un via une relation ou github, gitlab et bitbucket qui offrent de pouvoir explorer les projets publics puis d'executer les étapes plus haut à partir de l'étape 4... regardes par exemple mon design d'une couverture de filme ici

Bonus

As-tu déjà voulu pour adopter une approche différente d'implémentation d'une fonctionalité sur un projet après avoir écris beaucoup de code dessus revenir sur la version des fichiers avant l'essai?

Un gros oui pour moi!!

  • La commande git clean enlèvera(supprimera) toutes les modifications non encore ajoutées à l'index Git
  • La commande git stash enrégistrera toutes modifications apportées au repertoire de travail et de l'index git pour que la version sous le pointeur(HEAD) soit disponible dans l'index et dans le repertoire de travail.
    Il suffit ensuite de taper la commande git stash drop pour effacer cet enrégistrement ou git stash pop sur une nouvelle branche pour travailler dessus sans affecter le travail précédent.

Conclusion

Débutant ou expérimenté dans l'écriture du code, il est des situations ou il serait idéal de versionner son code(créer des checkpoints) au cas ou une regression serait introduite et de le garder au moins sur un emplacement distant en cas de soucis avec la station de travail locale ou simplement pour pouvoir travailler dessus depuis differentes stations de travail et faciliter la collaboration dessus, Git est l'outils pensé pour cela et comme vous venner de le voir sa prise en main est plutôt simple!