Git ?
Mais oui vous savez, git
, ces quelques commandes que vous utilisez depuis
quelques semaines maintenant. Si vous n’êtes pas un de mes étudiants, cet article
est une très bref introduction à git
, comment cela fonctionne et quelques
fonctionnalités, le but étant de se concentrer sur l’essentiel.
C’est quoi git
?
Personne ne fait du code parfait d’une seule traite…
Sauf moi, mais il n’y qu’un seul moi.
- Linus Torvalds1
Vous ne connaissez peut être pas Linus Torvalds, mais si c’est le cas, c’est
super !
Il s’agit d’un informaticien Finlandais qui a créé le Noyau Linux. Mais on
est pas là aujourd’hui pour parler de lui, vous voulez en apprendre plus à propos
de git
, donc très bien, allons y.
Alors qu’est-ce que git
? Qu’est-ce qui se cache derrière git
? git
est un
système de contrôle de version2 pour suivre les changements dans les fichiers
informatiques et coordonner le travail sur ces fichiers entre plusieurs personnes.
Avec git
, vous pouvez voir sur quoi les autres travaillent, vous pouvez passer
en revue leur code sans chercher partout, vous pouvez voir vos modifications
précédentes, vous pouvez revenir à votre code précédent et bien plus encore.
Il y a beaucoup de commandes et je vais vous en montrer quelques-unes aujourd’hui.
GiT GuD, à la découverte de la magie derrière certains mots-clés
Vous connaissez peut-être trois à cinq commandes aujourd’hui et ce n’est pas grave, c’est vraiment bien si vous savez vraiment ce qu’il se cache derrière ces commandes. Mais je suis sûr de quelque chose, vous ne connaissez même pas la commande la plus utile.
J’ai besoin d’aide, je ne sais pas à quoi ça sert
❯ git help
Comme toutes choses, un programme est livré avec de la documentation, donc
git help
sera votre meilleur ami dans votre apprentissage, Google n’est
pas la seule solution lorsqu’on ne sait pas. Disons que vous ne savez pas
comment fonctionne git add
? Rien de plus simple, tapez git help add
et les
informations dont vous aviez besoin se trouvent juste sous vos yeux, si ce n’est
pas le cas, c’est que vous cherchez sûrement au mauvais endroit.
Comme second meilleur ami, la commande man
, elle vous affichera la manuel de
n’importe quelle commande, y compris git
.
❯ git help
❯ man git
Donc voilà, deux commandes et vous êtes les maîtres du monde, je pense que je peux m’arrêtez ici. Non, plus sérieusement, on a encore un peu de chemin à faire.
Personne ne vous a dit qu’il fallait se présenter ?
git
voudra peut-être vous connaître avant d’aller plus loin, après tout
c’est normal, vous ne vous connaissez pas, je suppose que c’est mieux si vous
lui dites qui vous êtes.
❯ git config --global user.name "Xavier Login"
❯ git config --global user.email xavier.login@example.com
Ces deux commandes permettront à git
de connaître votre identité, car vous
pouvez envoyer votre travail sur certains serveurs git, vous pouvez
facilement suivre si vous avez fait telle ou telle modification en regardant
l’auteur des travaux.
Une bonne chose à signaler est que toutes ces informations sont stockées dans le
fichier .gitconfig
situé dans votre HOME
, ou ~
.
En piste
Il y a deux façons d’obtenir un dépôt git, et c’est vraiment simple,
supposons que vous n’ayez rien, vous devez dans ce cas initialiser votre
dépôt, la commande sera donc git init
. Imaginons maintenant que vous ayez
déjà un dépôt, vous voulez donc cloner votre projet, ce sera alors
git clone
. Notez que git clone
demandera toujours un dépôt distant3,
vous devez donc le préciser. Vous pouvez noter ces deux commandes:
❯ git init
❯ git clone git@github.com/iRyukizo/trantor
Comment se porte git
?
C’est vrai ça, comment se porte votre dépôt ? A tout moment, vous pouvez
consulter le statut de votre dépôt grâce à la commande git status
. Cette
commande vous affichera les modifications qui ne sont pas validées,
enregistrées, si vous ajoutez des fichiers pour enregistrer les modifications,
ils apparaîtront alors en vert, et dans le cas contraire en rouge.
❯ git status
Notez que si vous validez vos changements avec la commande git commit
, les
fichiers modifiés n’apparaîtront plus avec git status
.
Qu’est ce qui a été fait jusqu’à présent ?
D’accord, vous pouvez créer un dépôt git
, vérifier son statut, imaginer que
vous clonez un dépôt et que beaucoup de travail a été fait auparavant,
que faire si vous voulez savoir ce qui a été fait ou vérifier si vos travaux sont
bien présents et donc continuer à travailler. (dans le cas où vous avez
travaillé ailleurs que sur votre session actuelle).
❯ git log
git log
vous aidera à tout moment, vous pouvez voir tous les travaux
précédents représentés par des commits.
Comme vous pouvez le voir, il y a quatre commits, donc je peux maintenant
être sûr que si j’ai poussé plus de quatre commits, mon travail n’est
pas à jour. Dans le cas où vous avez poussé moins de quatre commits et que
vous ne savez pas d’où cela vient, ce n’est pas normal. git log
posséde
quelques fonctionnalités intéressantes, vous pouvez y jeter un œil avec
git help log
.
Validé
Avant de créer un commit, vous allez travailler sur votre projet et
apporterez beaucoup de modifications, ces modifications doivent être ajoutées
à votre dépôt git
avec git add
.
Avec notre exemple, le fichier est désormais considéré comme ajouté et prêt
à être “validé”(commit).
Alors, qu’est-ce que commit ? Supposons que vous ayez effectué des travaux
sur votre dépôt, et que vous souhaitiez enregistrer ces modifications, vous
allez donc créer un commit avec le travail que vous souhaitez, vous pouvez
spécifier ces travaux avec le nom des fichiers que vous souhaitez ajouter
puis le valider avec git commit
et un message.
❯ git add my_precious_work.c README
❯ git commit -m "work: fixed error"
git commit
ouvrira un éditeur de texte pour spécifier le message que vous
souhaitez laisser.
Avec ces deux commandes, votre précieux travail est maintenant enregistré dans
votre dépôt localement.
NOTA BENE: Il est important de bien décrire votre commit en rendant le
message le plus clair possible.
Localement ? Mais je veux que mon travail soit partout
❯ git push
Votre travail est enregistré localement et vous souhaitez maintenant le
partager avec le monde entier. Pas de problème, git push
est là. git push
enverra votre travail au dépôt distant3 et ensuite vous pourrez vous
reposer. Si toutefois, n’êtes pas sûr, git log
est votre ami, laissez-moi vous
montrer.
D’accord, il y a deux choses que vous devez souligner, la première est que
lorsque votre commit n’est pas poussé, il apparaîtra comme ceci:
Et quand c’est le cas, cela apparaîtra comme ça:
Le dépôt distant3 origin
sur la branche4 master
est dans le
même état que votre dernier commit.
Restons à jour par pitié
Supposons que vous travaillez avec d’autres personnes ou que vous travaillez à
partir d’un autre endroit, vous devez maintenir le dépôt git
à jour. Pour
ce faire, vous avez git pull
, il rapatriera les fichiers distant s’il y en
a et déclarera dans le cas contraire que votre dépôt est à jour.
❯ git pull
Divers
Je vais vous montrer quelques fonctionnalités intéressantes et utiles que vous devriez connaître et qui peuvent être très utiles dans la vie de tous les jours.
Ignorons les
.gitignore
est un fichier que vous pouvez déposer à la racine de votre
dépôt et il dira à git
d’ignorer certains fichiers. Par exemple:
*.exe
*.o
*.out
bin/
obj/
Avec ce .gitignore
, tous les fichiers avec .exe
, .o
ou .out
comme
extension seront ignorés. Les dossiers nommé bin/
ou obj/
et leur contenu
seront ignorés. Ainsi, git add
ne les prendra pas en compte.
Qu’est ce qui a changé ?
❯ git diff
Imaginez que vous ayez modifié le contenu de certains fichiers, mais que vous
ne savez pas ce qu’il contenait initialement. Appelez simplement git diff
et
vous saurez maintenant.
-
représentera l’état distant et +
l’état local.
J’aurai peut être pas dû push ça…
❯ git rm --cached file
❯ git rm --cached -r directory
git rm --cached
permet de supprimer un fichier sur le dépôt distant tout en
le laissant présent en local. Tout comme git add
, il faudra commit
et par
la suite push
les modifications.
Qu’est ce que je viens de faire ?
❯ git reflog
git reflog
est la chose la plus utile que vous devez savoir pour le moment.
Imaginez que vous n’êtes pas sûr de l’action que vous venez de faire, que vous
voulez la déboguer, mais que vous ne vous en souvenez pas, cette commande est
parfaite.
Les deux dernières actions étaients des commit
.
Résumé
Je vais essayer de récapituler chacune des commandes que je vous ai présentées et leurs utilitées.
git help
, pour chaque fois que vous avez une question.git init
, initialisez un dépotgit
à partir de zéro.git clone
, clonez un dépot.git status
, vérifiez l’état de votre dépot.git log
, affiche la liste de tous les commits.git add
, ajoutez des fichiers pour être validé(commit).git commit
, enregistrez votre travail en tant quecommit
.git push
, envoyez votre travail au dépot distant.git diff
, vous montre la différence entre vos fichiers locaux et vos fichiers distants.git rm --cached
, supprime les fichiers sur le dépôt distant.git reflog
, vous montre toutes les directives que vous avez utilisées.
C’est tout ?
Non pas vraiment, git
a beaucoup de fonctionnalités, et il est trop tôt pour
en parler. Je parlerai peut-être de l’utilisation des branches
4 dans git
plus
tard, mais comme je l’ai dit, toutes les fonctionnalités que je viens de montrer
semblent essentielles en tant qu’étudiant de premiere année.
Liens et plus
References
- Linus Torvalds, https://fr.wikipedia.org/wiki/Linus_Torvalds
- Livre Git, https://git-scm.com/book/fr/v2
Tech Talk: Linus Torvalds on
git
, https://www.youtube.com/watch?v=4XpnKHJAok8&t=1340s ↩︎Gestion de versions, https://fr.wikipedia.org/wiki/Gestion_de_versions ↩︎
Dépôts distants, https://git-scm.com/book/fr/v2/Les-bases-de-Git-Travailler-avec-des-d%C3%A9p%C3%B4ts-distants ↩︎
Les branches avec Git, https://git-scm.com/book/fr/v2/Les-branches-avec-Git-Les-branches-en-bref ↩︎