If I’m branching different versions of a Unity project with Git, is Git’s ‘merge’ command reliable? I haven’t tested anything, but I assume using the command to merge branches would cause some conflicts. Does anybody use Git for their projects? I’m wondering if I will have to export asset packages from one branch and import them to the master branch to manually merge the project changes. Anybody have input on this?
We use git on all our projects. Make sure you are using meta files and in “Force Text” mode.
Setup a .gitignore to exclude appropraite things. Here is the one we use:
Library/
Temp/
*.pidb
*.csproj
*.unityproj
*.sln
*.userprefs
[Bb]uilds/
#######
# Git
######
*.orig
*.orig.meta
*.BASE.*
*.LOCAL.*
*.REMOTE.*
*.MERGED.*
#################
## Eclipse
#################
*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# CDT-specific
.cproject
# PDT-specific
.buildpath
#################
## Visual Studio
#################
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
*_i.c
*_p.c
*.ilk
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.vspscc
.builds
*.dotCover
## TODO: If you have NuGet Package Restore enabled, uncomment this
#packages/
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
# Visual Studio profiler
*.psess
*.vsp
# ReSharper is a .NET coding add-in
_ReSharper*
# Installshield output folder
[Ee]xpress
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish
# Others
[Bb]in
[Oo]bj
sql
TestResults
*.Cache
ClientBin
stylecop.*
~$*
*.dbmdl
Generated_Code #added for RIA/Silverlight projects
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
############
## Windows
############
# Windows image file caches
Thumbs.db
# Folder config file
Desktop.ini
#############
## Python
#############
*.py[co]
# Packages
*.egg
*.egg-info
dist
build
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg
# Installer logs
pip-log.txt
# Unit test / coverage reports
.coverage
.tox
#Translations
*.mo
#Mr Developer
.mr.developer.cfg
# Mac crap
.DS_Store
# Server.dat
server.dat
You may not need all of that, but its a good start that works. Remember that git does not version folders, so avoid empty ones (some plugins and tools create them… bla!).
In theory you can merge scenes since in Force Text mode they are simple YAML files. In practice… forget about it. Better to just have only one person work on a scene file at a time to avoid the headache.
Other than, you should have no issues other than issues git throws at you.