Git - Reminder

Download & install Git

Avec un nouveau projet

Créer le dossier de votre projet et/ou entrez dedans, puis initialisez le versioning dans ce dossier :

mkdir test && cd test
git init

Pour éviter que certains fichiers ou dossiers soient trackés (comme par exemple .DS_Store ou /temp) il faut les déclarer, un par ligne, dans le fichier invisible .gitignore situé dans le dossier du projet. <!–more–>

A chaque ajout de fichier/dossier ou à chaque modification importante (en tout cas, significative), ajoutes-les à Git :

git add style.css
git add *.html
git add app/*

Ajouter tout le dossier :

git add .

Pendant le développement, à chaque étape significative, vous devez faire un “commit”, c'est-à-dire indiquer à Git que tous les fichiers trackés (donc ceux qui ont été ajoutés avec ‘git add’) doivent être enregistrés et soumis au versioning.

Il est obligatoire de laisser un message à chaque commit. Cela peut être une description comme “ajout d'une anim à bouton #1” ou “changement de couleur du titre”, “bugfixes menu droite”, “correction de la typo ligne 17 (Auteur : John Doe)” par exemple.

git add .
git commit -m 'mon premier commit'

Grâce à la commande ‘git status’ et à ‘git log’ vous pouvez obtenir des renseignements sur l'état de versioning du projet.

C'est tout !

Enfin non, il y a beaucoup à approfondir, mais ce n'est pas le but de ce simple mémo…

GitHub

GitHub offre l'hébergement de votre projet et de son versioning par Git. C'est gratuit pour les projets OpenSource ou en tout cas ‘publics’, et payant pour les projets fermés ou privés.

Rendez-vous sur le site de GitHub, créez un compte puis dans la rubrique “Mon compte” ajoutez un clé publique SSH (instructions sur le site).

Créez ensuite un “new repository” : entrez un nom de projet et une description. C'est fait, votre repository est prêt.

Pour pouvoir y uploader votre projet, vous devez d'abord faire un “pull”, c'est-à-dire que vous allez ajouter puis mélanger (merge) le contenu du repository avec votre dossier local. Pas d'inquiétude : le repo étant vide pour l'instant, cela n'effacera rien dans votre dossier local.

cd test
git pull [adresse du repository]

Ensuite il faut déclarer votre user et email :

git config --global user.name Eric Dejonckheere
git config --global user.email eric@aya.io

Ajouter l'adresse du repository comme correspondance avec le dossier local :

git remote add origin [adresse du repository]

C'est bon, vous pouvez uploader votre dossier :

git push -u origin master

L'option -u force le push, ça ne sert que la première fois.

En résumé

Finalement, il y a une routine qui revient souvent et qui va très vite :

  1. On ajoute à Git
  2. On vérifie
  3. On commit
  4. On upload vers GitHub
git add .
git status
git commit -m 'description'
git push origin master

Pour gagner du temps on peut créer des alias dans ~/.bash_profile ou si vous utilisez ZSH dans ~/.zshrc :

alias gcomm='git add . && git commit -m'
alias gpush='git push origin master'

puis activez vos modifications dans la fenêtre active du Terminal avec source ~/.bash_profile ou source ~/.zshrc.

Options et possibilités

Fork d'un projet à mettre à jour

Dans Github, vous avez “forké” un projet vers votre compte, disons Octopress. Vous y avez fait des modifications mais entre temps l'auteur a lui-même modifié l'original.

Pour rester à jour, il faut “pull”, c'est à dire “fetch” puis “merge” le projet original vers votre copie locale puis “push” votre copie vers votre fork sur Github :

git remote add origin https://github.com/imathis/octopress
git remote add myfork https://github.com/moncompte/octopress
git pull origin
git push myfork

S'il y a des conflits parceque certaines parties communes ont été modifiées, visualisez les différences :

git diff

puis vous choisissez les parties à fusionner.

Effacer fichiers dans la branche active

Tout comme on ajoute des fichiers avec git add, on les efface avec git rm.

Attention : la commande efface les fichiers du tracking mais également du dossier ! C'est tout à fait normal puisque git fonctionne par instantanés. Faites un commit après avoir effacé les fichiers avec git rm.

Si vous revenez à un stade précédent dans l'historique des commits, git recréera les fichiers dans l'état où ils étaient.

Effacer fichiers dans le cache

Si vous souhaitez effacer les fichiers du tracking de git mais les conserver dans le répertoire existant :

git rm --cached fichier.ext

L'option --cached supprime les fichiers du tracking (un gros dossier plein de vidéos ajouté à git par erreur avec git add . par exemple) mais les laisse en place dans votre dossier, il ne les efface pas.

Auteur: Eric Dejonckheere