Les bases #2
La base de Git, seconde partie
Introduction
La principale caractéristique de git
est qu’il s’agit d’un système distribué (distributed selon la documentation officielle) : c’est à dire qu’il permet à un ensemble de machines distantes de travailler sur le même objectif, le tout sans structure hiérarchisée.
Dans ce tutoriel, nous allons aborder les bases du travail en remote avec l’utilisation de branches distantes, sur des plateformes comme GitHub par exemple.
Cloner un dépôt distant
Un remote (ou dépôt distant) est une version d’un projet qui est stockée sur un serveur, le plus souvent chez un hébergeur spécialisé comme Github, GitLab etc. Le remote permet de partager le code à vos collaborateurs, de sauvegarder le code et même de travailler n’importe où.
Pour cloner (l’action de récupérer le contenu du dépôt) on utilise la commande clone
, qui prends en argument l’URL du dépôt distant.
Commencez par cloner un dépôt distant, par exemple le dépôt de ce projet :
1
git clone https://github.com/Pallandos/GitSimple.git
Cela va tout simplement télécharger tous les fichiers du dépôt distant, mais surtout copier aussi tout l’historique de modification. Vous pouvez donc revenir à n’importe quelle version du remote, sans se connecter à internet, voir tout l’historique de modification etc.
Lancez la commande git log
et vous verrez bien tout l’historique de modification!
Lorsque vous lancez la commande
git log
, tapezq
pour quitter.
Ajouter un remote à un dépôt local
Admettons maintenant que vous êtes dans la situation inverse : vous avez initialisé un dépôt local avec init
et vous souhaitez maintenant publier son contenu sur GitHub pour travailler avec vos collaborateurs. Il faut utiliser la commande remote add
.
Placez vous dans le projet du tuto #1, et initialisez un dépôt distant (en remplaçant évidemment les champs username et repo-name) :
1
git remote add origin https://github.com/username/repo-name.git
Cette commande va ajouter un projet remote à la configuration du local.
J’ai donné l’exemple avec GitHub mais vous pouvez évidemment utiliser d’autres plateformes. Référez vous à la documentation propre des plateformes pour la création de l’URL.
Vous pouvez vérifier que votre remote a été ajouté avec l’option -v
.
1
git remote -v
Cela devrait renvoyer 2 lignes :
1
2
origin https://github.com/Pallandos/tests.git (fetch)
origin https://github.com/Pallandos/tests.git (push)
Synchroniser son travail
On peut voir sur le résultat de la commande précédente deux mots : fetch
et pull
qui font référence aux deux actions à effectuer par rapport au remote : recevoir et envoyer.
Si vous utilisez un outil comme GitHub, les actions de cette partie requièrent probablement que vous vous connectez. Un tuto sera publié pour gérer ses connections.
Récupérer des modifications
Une fois que vous avez un remote, soit car vous l’avez créé soit car vous avez cloné, il faut pouvoir se synchroniser par rapport au distant. Pour récupérer les modifications il existe deux options : pull
et fetch
:
pull
va récupérer les changements et les fusionner avec votre travail en local (cela va donc modifier vos fichiers)fetch
va juste récupérer sans toucher à votre local, c’est utile lorsque vous n’avez pas tout envoyé
Pour ce faire, les commandes sont simplement :
1
git pull origin main
ou
1
git fetch origin
Dans ces cas,
origin
désigne par défaut le dépôt distant tandis quemain
désigne le dépôt local. Pensez à l’adapter si vous les avez changés.
Envoyer des modifications
L’opération inverse, qui consiste à envoyer sa version sur le serveur distant s’effectue avec la commande push
. Cette commande ca récupérer tous les commit que vous avez réalisés avec la commande commit
(depuis la dernière fois que vous avez push sur le remote) et les envoyer.
Pour cela, il faut donc avoir commité (voir le tuto précédent), puis juste effectuer la commande :
1
git push origin main
Cette commande va envoyer les commits de votre branche local main
sur le remote origin
.
Bilan
Dans ce tuto, vous avez appris à paramétrer le remote pour travailler en collaboration, et les actions de base pour synchroniser son travail.
Prochaine étape
Dans le fin de ce tutoriel nous avons abordé le concept de branch, un autre concept clé de git
qui sera abordé dans le prochain tutoriel.