21/04/2021

1. Staging

Lu 1051 fois Licence Creative Commons

Zone de staging

Lorsque l'on souhaite créer un commit pour enregistrer des modifications, on ne souhaite pas forcément enregistrer toutes les modifications d'un seul coup.
On va donc indiquer quels fichiers enregistrer en les ajoutant à la zone de staging (ou staging area, index) puis on créera le commit.

Ajouter à la zone de staging

On utilisera la commande add suivi d'une ou plusieurs expressions:
Ajouter un fichier ou un dossier entier

git add file.txt
git add src

Ajouter plusieurs éléments en même temps:

git add file.txt src

Ou ajouter les modifications de tout le projet:

git add .

Note: Le symbole . désigne le dossier actuel, ce n'est pas une commande spéciale de Git.


Vérifier les changements

Pour avoir une vue d'ensemble sur ses modifications, utiliser la commande status qui listera:

  • les fichiers ajoutés au staging en vert sous Changes to be commited
  • les fichiers modifiés qui n'ont pas été ajouté au staging en rouge sous Changes not staged for commit
  • les nouveaux fichiers qui n'ont pas été ajoutés au staging en rouge sous Untracked files
git status
[output]On branch master
[output]Changes to be committed:
[output]  (use "git restore --staged <file>..." to unstage)
[output]	modified:   README.md
[output]
[output]Changes not staged for commit:
[output]  (use "git add <file>..." to update what will be committed)
[output]  (use "git restore <file>..." to discard changes in working directory)
[output]	modified:   src/index.php
[output]
[output]Untracked files:
[output]  (use "git add <file>..." to include in what will be committed)
[output]	file.txt

Note: Lors de certaines opérations, il est possible d'avoir une section encore différente "Unmerged paths". Elle permet d'indiquer où se situent des conflits lors de mise en commun de multiples modifications.


Retirer de la zone de staging

Pour retirer un fichier du staging, utiliser la commande reset:

git reset src/index.php
[output]Unstaged changes after reset:
[output]M	src/index.php

Ou ne passer aucun argument pour réinitialiser le staging:

git reset
[output]Unstaged changes after reset:
[output]M	README.md
[output]M	src/index.php: