Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Systèmes de contrôle de version

Introduction

Godot vise la compatibilité avec les logiciels de gestion de version et à générer des fichiers relativement lisibles et faciles à fusionner.

Extensions de contrôle de version

Godot prend également en charge l'utilisation de systèmes de contrôle de version (SCV) dans l'éditeur lui-même. Cependant, utiliser un SCV dans l'éditeur nécessite un plugin pour le SCV spécifique que vous utilisez.

En date d'octobre 2025, seule une extension Git est disponible, mais la communauté pourrait créer des extensions pour d'autres logiciels de gestion de version.

Plugin Git officiel

L'utilisation de Git depuis l'intérieur de l'éditeur est prise en charge avec un plugin officiel. Vous pouvez trouver les dernières versions sur GitHub.

La documentation sur comment utiliser le plugin Git peut être trouvée à l'adresse wiki.

Fichiers à exclure du VCS

Note

Cela liste les fichiers et dossiers à ignorer par la gestion des versions dans Godot 4.1 et suivants.

La liste des fichiers et dossiers à ignorer de la gestion des version dans Godot 3.x et Godot 4.0 est totalement différente. C'est important car Godot 3.x et 4.0 pourraient stocker des identifiants sensibles dans export_presets.cfg (contrairement à Godot 4.1 et suivants).

Si vous utilisez Godot 3, regardez la version 3.6 de cette page de la documentation à la place.

Certains fichiers et dossiers sont créés automatiquement par Godot à la première ouverture d'un projet dans l'éditeur. Pour éviter de polluer votre dépôt avec des données générées, vous devriez les ajouter dans les exclusions de votre gestion de version :

  • .godot/ : Ce dossier stocke de nombreuse données de caches du projet.

  • *.translation : Ces fichiers sont importés en binaire  traductions, générées à partir de fichiers CSV.

Le gestionnaire de projets de Godot peut générer pour vous, automatiquement, les métadonnées de votre gestion de versions lors de la création d'un projet. Lorsque vous choisissez l'option Git, cela crée les fichiers .gitignore et .gitattributes dans la racine du projet :

Création des métadonnées de gestion de version dans la fenêtre Nouveau Projet du gestionnaire de projets

Création des métadonnées de gestion de version dans la fenêtre Nouveau Projet du gestionnaire de projets

Dans les projets existants, sélectionnez le menu Project en haut de l'éditeur, puis choisissez Contrôle de version > Générer les métadonnées de contrôle de version. Cela crée les mêmes fichiers que si l'opération avait été effectuée dans le gestionnaire de projet.

Travailler avec Git sous Windows

La plupart des clients Git pour Windows sont configurés avec le paramètre core.autocrlf réglé sur true. Cela peut conduire à ce que des fichiers soient inutilement marqués comme modifiés par Git, car leurs fins de ligne sont converties automatiquement de LF à CRLF.

Il est préférable de définir cette option comme :

git config --global core.autocrlf input

La création de métadonnées de contrôle de la version à l'aide du gestionnaire de projet ou de l'éditeur fera automatiquement appliquer les terminaisons de ligne LF en utilisant le fichier .gitattributes. Dans ce cas, vous n'avez pas besoin de changer votre configuration Git.

Git LFS

Git LFS (Large File Storage, litt. "Stockage de grands fichiers") est une extension Git qui permet de gérer des fichiers volumineux dans votre dépôt. Elle remplace les fichiers volumineux par des pointeurs en texte dans Git lors du stockage du contenu du fichier sur un serveur distant. Elle est pratique pour gérer des ressources volumineuses comme des textures, des fichiers audio et des modèles 3D, sans engorger votre dépôt Git.

Note

Quand vous utilisez Git LFS vous devez impérativement vous assurer que l'extension est configurée avant de faire un commit de fichiers vers votre dépôt. Si vous aviez déjà fait un commit de fichiers vers votre dépôt, vous devrez les supprimer du dépôt et les ajouter de nouveau après avoir configuré Git LFS.

Il est possible d'utiliser git lfs migrate pour convertir des fichiers existants dans votre dépôt, mais c'est plus complexe et cela demande une bonne compréhension du fonctionnement de Git.

Une approche habituelle consiste à configurer un nouveau dépôt avec Git LFS (et un .gitattributes correct), puis à copier les fichiers de l'ancien dépôt vers le nouveau. De cette façon, vous pouvez vous assurer que tous les fichiers sont suivis par LFS dès le début.

Pour utiliser Git LFS avec Godot, vous devez installer l'extension Git LFS et la configurer pour suivre les types de fichiers que vous souhaitez gérer. Vous pouvez le faire en exécutant la commande suivante dans votre terminal : :

git lfs install

Cela créera un fichier .gitattributes dans votre dépôt qui indique à Git d'utiliser LFS pour les types de fichiers spécifiés. Vous pouvez ajouter plus de types de fichiers en modifiant le fichier .gitattributes. Par exemple, pour suivre tous les fichiers GLB, vous pouvez le faire en exécutant la commande suivante dans votre terminal : :

git lfs track "*.glb"

Lorsque vous ajoutez ou modifiez des fichiers qui sont suivis par LFS, Git va automatiquement les stocker dans LFS plutôt que dans l'historique Git habituel. Vous pouvez push et pull des fichiers LFS exactement comme n'importe quel fichier Git habituel, mais vous devez garder à l'esprit que les fichiers LFS sont stockés séparément du reste de l'historique Git. Cela implique que vous devrez installer Git LFS sur toute machine qui clone le dépôt de façon à pouvoir accéder aux fichiers LFS.

Voici un exemple de fichier .gitattributes que vous pouvez utiliser comme point de départ pour Git LFS. Ces types de fichiers ont été choisis parce qu'ils sont couramment utilisés, mais vous pouvez modifier la liste pour inclure tous les types binaires que vous pouvez avoir dans votre projet.

# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

# Git LFS Tracking (Assets)

# 3D Models
*.fbx filter=lfs diff=lfs merge=lfs -text
*.gltf filter=lfs diff=lfs merge=lfs -text
*.glb filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text

# Images
*.png filter=lfs diff=lfs merge=lfs -text
*.svg filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.webp filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.hdr filter=lfs diff=lfs merge=lfs -text
*.dds filter=lfs diff=lfs merge=lfs -text

# Audio
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text

# Font & Icon
*.ttf filter=lfs diff=lfs merge=lfs -text
*.otf filter=lfs diff=lfs merge=lfs -text
*.ico filter=lfs diff=lfs merge=lfs -text

# Godot LFS Specific
*.scn filter=lfs diff=lfs merge=lfs -text
*.res filter=lfs diff=lfs merge=lfs -text
*.material filter=lfs diff=lfs merge=lfs -text
*.anim filter=lfs diff=lfs merge=lfs -text
*.mesh filter=lfs diff=lfs merge=lfs -text
*.lmbake filter=lfs diff=lfs merge=lfs -text

Pour en savoir plus sur Git LFS, consultez la documentation officielle : https://git-lfs.github.com/ et https://docs.github.com/fr/repositories/working-with-files/managing-large-files.