git

WIP

Démarrer un dépôt Git

Deux façons existent :

  1. Transformer un répertoire existant et le transformer en dépôt Git.
  2. Cloner un dépot Git existant.

Dans un répertoire existant

Votre répertoire existe et peut-être contient même des fichiers. Crée et rentre dans ton répertoire et initialise un dépôt :

mkdir /home/user/my_project
cd /home/user/my_project
git init

Ton dépôt Git est créé.

Ton répertoire est vide. Crée un fichier à l'intérieur :

touch /home/user/my_project/README.md

Le fichier est vide. Tu es dans /home/user/my_project. Ajoute du texte et affiche le contenu :

echo "Mon premier dépôt git." > README.md
cat README.md

Pour connaître l'état de ton dépôt, fais :

git status

Tu obtiens le message suivant :


Sur la branche main  

Aucun commit  

Fichiers non suivis:  

(utilisez "git add <fichier>..." pour inclure dans ce qui sera validé)    
README.md  

aucune modification ajoutée à la validation mais des fichiers non suivis    
sont présents (utilisez "git add" pour les suivre)  

Le fichier que tu viens de créer est non suivi. Pour garder une trace des modifications de ce fichier, il faut le faire suivre par Git. L'ajouter à ton répertoire ne suffit pas. Pour faire suivre README.md :

git add README.md

Affiche le statut de ton dépôt :

git status

Tu obtiens le message suivant :


Sur la branche main

Aucun commit

Modifications qui seront validées :
  (utilisez "git rm --cached <fichier>..." pour désindexer)
	nouveau fichier : README.md

Git a pris un instantané de ton dépôt. La prochaine fois que tu valideras le dépôt, Git se souviendra du fichier README.md tel qu'il était quand tu l'as ajouté. On dit que le fichier est suivi et indexé. Ces deux mots sont importants pour la suite.

On recommence avec un autre fichier. Toujours dans le répertoire de notre projet, on lance la commande :

touch CONTRIBUTING.md

Si on fait :

ls

pour afficher la liste des fichiers présents, on a bien nos deux fichiers :

CONTRIBUTING.md README.md

Vérifions l'état du dépôt :

git status

On obtient le message suivant :


Sur la branche main

Aucun commit

Modifications qui seront validées :
  (utilisez "git rm --cached <fichier>..." pour désindexer)
	nouveau fichier : README.md

Fichiers non suivis:
  (utilisez "git add <fichier>..." pour inclure dans ce qui sera validé)
	CONTRIBUTING.md

Le résultat ne devrait pas te surprendre. Le fichier README.md est suivi et indexé, il apparaît donc toujours dans les fichiers sous


Modifications qui seront validées :

Tandis que le fichier CONTRIBUTING.md est non suivi, puisqu'on a toujours pas spécifié ) Git de le suivre. Comment ferais-tu ?

Avec la commande suivante :

git add CONTRIBUTING.md

Revérifions maintenant l'état du dépôt :

git status

On obtient ceci :


Sur la branche main

Aucun commit

Modifications qui seront validées :
  (utilisez "git rm --cached <fichier>..." pour désindexer)
	nouveau fichier : CONTRIBUTING.md
	nouveau fichier : README.md

Les deux fichiers, CONTRIBUTING.md et README.md, sont suivis, ils apparaissent dans la même catégorie.

Ecris quelque chose dans le fichier CONTRIBUTING.md :

echo "# Comment contribuer ?" > CONTRIBUTING.md

Vérifions la modification :

cat CONTRIBUTING.md

# Comment contribuer ?

Le fichier est maintenant modifié. Vérifions l'état du dépôt :

git status

Prenons le temps de lire le message obtenu :


Sur la branche main

Aucun commit

Modifications qui seront validées :
  (utilisez "git rm --cached <fichier>..." pour désindexer)
	nouveau fichier : CONTRIBUTING.md
	nouveau fichier : README.md

Modifications qui ne seront pas validées :
  (utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
  (utilisez "git restore <fichier>..." pour annuler les modifications dans le
  répertoire de travail)
	modifié :         CONTRIBUTING.md

Les modifications qui seront validées, autrement dit, les modifications de dépôt qui seront validées, sont les suivantes :


	nouveau fichier : CONTRIBUTING.md
	nouveau fichier : README.md

Il est bien indiqué nouveau fichier. Autrement dit, c'est le fait d'avoir créé des nouveaux fichiers que Git a retenu, puisque tu les a ajoutés après les avoir créés.

Or, tu as ensuite modifié le fichier CONTRIBUTING.md. Git te l'indique de la façon suivante :


	modifié :         CONTRIBUTING.md
    

dans les modifications qui ne seront pas validées. Dans ce cas, si tu veux que Git garde une trace de tes modifications, qu'il sauvegarde l'état de ton dépôt tel qu'il est maintenant, tu dois indexer à nouveau CONTRIBUTING.md. Il est suivi, mais pas indexé. Git sait qu'il existe, il ne sait pas encore que tu l'as modifié. Pour cela, on utilise à nouveau cette commande :

git add CONTRIBUTING.md

Revérifie l'état du dépôt :

git status

Tu obtiens :


Sur la branche main

Aucun commit

Modifications qui seront validées :
  (utilisez "git rm --cached <fichier>..." pour désindexer)
	nouveau fichier : CONTRIBUTING.md
	nouveau fichier : README.md

Cloner un dépôt existant

Le dépôt étant sûrement sur un serveur différent, il te faut l'adresse de ce dépôt pour pouvoir le cloner.

Github sert à héberger des dépôts git. D'autres sites web offrent ce service : Sourcehut, Gitlab...

La bibliothèque pour Git s'appelle libgit2. Elle est hébergée sur Github. Son adresse est :

https://github.com/libgit2/libgit2

La commande pour cloner un dépôt est :

git clone

Pour cloner le dépôt libgit2, entre la commande :

git clone https://github.com/libgit2/libgit2

Un répertoire contenant le dépôt sera créé là où tu te trouves au moment où tu lance cette commande.

Si jamais tu voulais changer le nom du répertoire où cloner ce dépôt, tu pourrais faire :

git clone https://github.com/libgit2/libgit2 my_libgit2