This is how I start a new Godot project.
Step by Step
- make a new folder
- run
git init
- run
git lfs install
- copy the .gitignore in (see below)
- copy the .gitattributes in (see below)
- commit these changes
- create a new file called
project.godot
(it will be empty) - open the folder in godot
- rename the project in the project settings
- commit these changes
- optional: within godot, run the setup script (see below)
- commit these changes ;P
.gitignore
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# Godot-specific ignores #
##########################
.import/
.godot/
.mono/
export.cfg
export_presets.cfg
*.translation
data_*/
mono_crash.*.json
*.tmp
# Project-specific ignores #
############################
!_exports/.gitignore
*.lnk
*.psd
.gitattributes
# Images
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
# Sound
*.ogg filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
# Scene Files / 3D Models
*.collada filter=lfs diff=lfs merge=lfs -text
*.dae filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
*.gltf filter=lfs diff=lfs merge=lfs -text
*.glb filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
# Other
*.shape filter=lfs diff=lfs merge=lfs -text
*.mesh filter=lfs diff=lfs merge=lfs -text
*.ico filter=lfs diff=lfs merge=lfs -text
*.afdesign filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.otf filter=lfs diff=lfs merge=lfs -text
setup script
https://gist.github.com/TheDuriel/4507f6f81ebe4ed0bc082c0e3c220049
Note that this script is an example. You could modify it according to your needs, or make a new one from scratch.
This script does a number of things:
- It adds a number of submodules I use in my projects.
- It configures the project settings
- It creates essential directories