La mise en scène est une étape avant le processus de validation dans git. Autrement dit, une validation dans git est effectuée en deux étapes: mise en attente et validation réelle.
Tant qu’un ensemble de modifications figure dans la zone de stockage intermédiaire, git vous permet de le modifier à votre guise (remplacez les fichiers intermédiaires par d'autres versions, supprimez les modifications, etc.).
Temps de métaphore brisé:
Prenons un scénario dans lequel vous appelez les déménageurs pour que vos affaires soient acheminées de votre ancien appartement à votre nouvel appartement. Avant de faire cela, vous allez parcourir vos affaires, décider ce que vous emportez avec vous et ce que vous jetez, le ranger dans des sacs et le laisser dans le couloir principal. Les déménageurs viennent simplement chercher les sacs (déjà emballés) dans le couloir et les transporter. Dans cet exemple, tout est mis en scène jusqu'à ce que les déménageurs récupèrent vos affaires: vous décidez où aller, comment les emballer, etc. (par exemple, vous pouvez décider que la moitié de vos affaires seront jetées avant même que les déménageurs y arrivent - c de la mise en scène).
D'un point de vue technique, la mise en scène prend également en charge les validations transactionnelles, en scindant toutes les opérations en ce qui peut échouer (staging) et ce qui ne peut pas échouer (commit):
Le commit in git est implémenté de manière transactionnelle, une fois la mise en scène réussie. Plusieurs étapes de la mise en place peuvent échouer (par exemple, vous devez valider, mais votre disque dur est plein à 99,9999% et git ne dispose d'aucun espace pour effectuer une validation). Cela échouera lors de la staging (votre référentiel ne sera pas corrompu par une validation partielle) et le processus de staging n'affectera pas votre historique de validation (il ne corrompra pas votre référentiel en cas d'erreur).