git-intro



git-intro

0 0


git-intro

My slides teaching Git & Github at @LeWagonParis

On Github ssaunier / git-intro

Débuter avec Git

(et Github)

Sébastien Saunier

@ssaunier sur et

Développeur Ruby on Rails Freelance

Nous sommes

des travailleurs du savoir

Nous sommes des travailleurs du savoir, (Knowledge Worker), nous passons notre temps à travailleur sur un ordinateur à créer et modifier des documents. Text, images, projets, etc...

Au quotidien

Manipulation de documents

Création Sauvegarde Modification Sauvegarde ...Demander au public si ça lui parle Corrections, Travail en équipe

Évolution d'un fichier

"Par exemple," "Introduire la diapo"

Versions

Gestion de versions

Pour chaque version d'un document :

Quand ? Quoi ? Pourquoi ?"Donc on va parler d'un outil"

Travail en équipe

Gestion de versions

Pour chaque version d'un document :

Quand ? Quoi ? Pourquoi ? Qui ?

En résumé

Outil de contôle de version Historique des changements Travail en équipe

Git

Présentation

Put your speaker notes here. You can see them pressing 's'.

Origine

Designé et Implémenté en 2005 par Linus Torvalds

Linus Torvalds : "je ne suis qu'un sale égocentrique, donc j'appelle tous mes projets d'après ma propre personne. D'abord Linux, puis Git.".

Décentralisé

Rapide

Performant

Installation

mac.github.com ou windows.github.com

Les participants téléchargent le logiciel Github + installation.

Configuration

$ git config --global user.name "Sebastien Saunier"
$ git config --global user.email "seb@saunier.me"
$ git config -l

Prêt ?

$ git --version
# git version 1.8.5

Les bases

Mon premier dépôt

$ git init
$ git status
$ git add
$ git diff
$ git commit
$ git log
Voici les commandes que nous allons apprendre

Nouveau projet : Listes

Créer l'espace de travail

$ cd
$ mkdir workspace
$ cd workspace

Puis le dossier du nouveau projet

$ mkdir listes
$ cd listes
$ git init

Nouveau fichier

Créer le fichier courses.txt

$ git status

$ git add courses.txt
$ git status

$ git commit -m "Creation de la liste de courses"
$ git status
Pas besoin de serveur, pas besoin de connexion Internet

Modification de fichier

Modifier le fichier courses.txt

$ git status

$ git diff courses.txt

$ git add courses.txt
$ git status

$ git commit -m "Ajout du beurre"
$ git status

$ git log

Que s'est-il passé ?

Espace de travail

working directory

$ git status
  # Changes not staged for commit:

Zone de transit

index ou staging area

$ git status
  # Changes to be commited:

Et dans l'autre sens ?

Rinse and Repeat

Branches

Expérimentez en toute sécurité

Une branche = Une fonctionnalité

$ git checkout -b noel

Navigation

Lister les branches

$ git branch

Se positionner dans une branche

$ git checkout <branch_name>
$ git commit

Fusion

En anglais, merge

$ git checkout master
$ git diff master..noel
$ git merge noel

Nettoyage

$ git branch -d noel

Remote

Parlons de dépôt distant

Héberger un dépôt distant ?

Github (Ou BitBucket)

Ajouter une remote

$ git remote add origin git@github.com:<user>/<proj>.git
$ git remote -v
$ git push origin master

Récupérer les changements

$ git checkout master     # Aller sur la branche master
$ git status              # Est-ce propre? (Bien sûr!)
$ git pull origin master  # Récupérer le travail
                          # de l'équipe

Sync Branch

Terminologie de l'application GitHub

Conflits

Pull Requests

Ou comment utiliser GitHub pour vos revues de code

Fork

Contribuez à l'open source

GitHub Pages

Ou comment héberger gratuitement votre portfolio

Même s'il génère 1M de pages vues!

Dépôt magique

<user>.github.io

master => http://<user>.github.io/

Branche magique

Tous les autres dépôt GitHub:

gh-pages => http://<user>.github.io/<repository>/

Action!

Un simple fichier index.html suffit :)

Marque blanche

http://<user>.github.io => http://your.domain

Utilisez un fichier CNAME à la racine du dépôt. Détails

Exemple: ssaunier.github.io/CNAME

Merci!