Versionner ? Pourquoi et comment avec Git !

Comprendre Git

Git possède une architecture et une organisation spéciale, en comparaison aux autres VCS (SVN, Mercurial, etc…).

Démarrer un projet Git

git init

Les commandes de base

git add .
git commit -m "A brief message regarding the present commit"
git log
git status
git rm filename
git diff

Les branches

git branch branchname
git checkout -b branchname

Le merging

git merge branchname
git pull origin branchname

Un peu plus sur le merging

Si vous vous sentez confiant, lisez ceci.

  • Si non, git créera un commit de fusion entre C4 et C5 (en reprenant le schema au complet).

Suivre le Gitflow

Gitflow

Les tags

Des troncs, des branches… voici les feuilles… (?)

git tag v0.1
git tag v0.1 e285d87
git show v0.1

La gestion d’erreurs

Eh oui, le monde git n’est pas sans petits accros. Nous allons voir brièvement quelques aides.

Une fusion avec conflit

Rien de grave, git a prévu des sections dans les fichiers à conflits.

<<<<<<< HEAD:index.html
Voici du contenu
=======
Here is some content
>>>>>>> feature/english:index.html

Réinitialiser un fichier modifié

git checkout -- filename

Réinitialiser un fichier modifié en phase d’indexation (stage)

git reset HEAD filename

Un commit trop rapide

git commit --amend

Les remotes

Travailler seul c’est bien. A plusieurs c’est mieux.

Du local vers la remote

git add remote origin url
git push origin master

Du remote vers le local

git clone url
git fetch
git pull
# = git fetch + git merge

Les commandes de base

git remote -v
git remote show origin

Don’t try this

Une fois le code poussé sur le serveur, deux méthodes sont à proscrire sous peine de… conflits techniques et sociaux. Ne jamais rebase et commit --amend un code utilisé en remote. En effet, les commit sont tous reliés à leurs parents grâce au SHA (l'identifiant du commit). Effectuer l'une de ces deux commandes change le SHA du commit et donc, même si tout vas bien sur votre local, s'en est tout autre pour vos collègues.

--

--

Freelance software engineer, guitar player & triathlete

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Baptiste Lecocq

Baptiste Lecocq

Freelance software engineer, guitar player & triathlete