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.
Checking the stable version of the documentation...
Sistemi di controllo versione
Introduzione
Godot cerca di essere compatibile con i software di controllo versioni, generando file per lo più leggibili e facili da effettuare merge.
Estensioni di controllo versione
Godot supporta anche l'utilizzo di sistemi di controllo versione nell'editor stesso. Tuttavia, il controllo versione nell'editor richiede un'estensione per lo specifico VCS utilizzato.
Da Ottobre 2025 è disponibile solo un plugin Git, ma la comunità potrebbe creare ulteriori estensioni di VCS.
Estensione Git ufficiale
L'utilizzo di Git dall'interno dell'editor è supportato da un'estensione ufficiale. È possibile trovare le ultime versioni su GitHub.
La documentazione su come utilizzare l'estensione Git è disponibile sulla sua wiki.
File da escludere dal VCS
Nota
Questo elenca i file e le cartelle che si dovrebbero ignorare dal controllo versione in Godot 4.1 e successive.
L'elenco dei file e delle cartelle che si dovrebbero ignorare dal controllo versione in Godot 3.x e Godot 4.0 è completamente diverso. Ciò è importante, poiché Godot 3.x e 4.0 potrebbero memorizzare credenziali sensibili in export_presets.cfg (a differenza di Godot 4.1 e successive).
Se si sta utilizzando Godot 3, consultare invece la versione 3.6 di questa pagina di documentazione.
Godot crea automaticamente alcuni file e cartelle quando si apre un progetto nell'editor per la prima volta. Per evitare di sovraccaricare il repository di controllo versione con i dati generati, è consigliabile aggiungerli alle esclusioni del proprio VCS:
.godot/: questa cartella memorizza vari dati della cache del progetto.*.translation: Questi file sono file binari di traduzioni importate, generati dai file CSV.
È possibile assicurare che il gestore dei progetti di Godot generi automaticamente metadati di controllo versione durante la creazione di un progetto. Scegliendo l'opzione Git, vengono creati i file .gitignore e .gitattributes nella radice del progetto:
Creare metadati di controllo versione nella finestra Nuovo progetto del gestore dei progetti
Nei progetti esistenti, selezionare il menu Progetto in cima all'editor, quindi scegliere Controllo versione > Genera metadati di controllo versione.Facendo così verranno creati gli stessi file come se l'operazione sia stata eseguita nel gestore dei progetti.
Lavorare con Git su Windows
La maggior parte dei client Git per Windows è configurata con core.autocrlf impostato su true. Ciò può portare a file considerati modificati da Git inutilmente, poiché le loro terminazioni di riga vengono automaticamente convertite da LF a CRLF.
È meglio impostare questa opzione come:
git config --global core.autocrlf input
La creazione di metadati per il controllo versione attraverso il gestore dei progetti o l'editor imporrà automaticamente le terminazioni di riga LF tramite il file .gitattributes. In tal caso, non è necessario modificare la propria configurazione di Git.
Git LFS
Git LFS (Large File Storage) è un'estensione Git che consente di gestire file grandi nel repository. Sostituisce i file grandi con puntatori di testo all'interno di Git, memorizzandone il contenuto su un server remoto. Questo è utile per gestire grandi risorse, come texture, file audio e modelli 3D, senza appesantire il repository Git.
Nota
Quando si utilizza Git LFS, assicurarsi che sia configurato prima di effettuare il commit di qualsiasi file nel repository. Se sono già stati effettuati dei commit di file nel repository, sarà necessario rimuoverli dal repository e aggiungerli nuovamente dopo aver configurato Git LFS.
È possibile utilizzare git lfs migrate per convertire i file esistenti nel repository, ma questa operazione è più complessa e richiede una buona conoscenza di Git.
Un approccio comune consiste nel creare un nuovo repository con Git LFS (e un file .gitattributes adeguato), quindi copiare i file dal vecchio repository a quello nuovo. In questo modo, è possibile garantire che tutti i file siano tracciati da LFS fin dall'inizio.
Per utilizzare Git LFS con Godot, è necessario installare l'estensione Git LFS e configurarla per tracciare i tipi di file che si desidera gestire. È possibile farlo eseguendo il seguente comando nel terminale:
git lfs install
Questo creerà un file .gitattributes nel repository che indica a Git di utilizzare LFS per i tipi di file specificati. È possibile aggiungere altri tipi di file modificando il file .gitattributes. Ad esempio, per tracciare tutti i file GLB, è possibile eseguire il seguente comando nel terminale:
git lfs track "*.glb"
Quando si aggiungono o si modificano file tracciati da LFS, Git li memorizzerà automaticamente in LFS invece che nella normale cronologia di Git. È possibile effettuare il push e il pull dei file LFS proprio come con i normali file Git, ma è importante tenere presente che i file LFS sono memorizzati separatamente dal resto della cronologia di Git. Ciò significa che potrebbe essere necessario installare Git LFS su qualsiasi macchina su cui si clona il repository per accedere ai file LFS.
Di seguito è riportato un file .gitattributes di esempio che si può utilizzare come punto di partenza per Git LFS. Questi tipi di file sono stati scelti perché sono di uso comune, ma è possibile modificare l'elenco per includere qualsiasi tipo binario presente nel proprio progetto.
# 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
Per maggiori informazioni su Git LFS, consultare la documentazione ufficiale: https://git-lfs.github.com/ e https://docs.github.com/en/repositories/working-with-files/managing-large-files.