Collaboration and Version Control

Using Github, Git and Github Desktop to Backup Projects

You don’t have access to this lesson
Please register or sign in to access the course content.
Length: 10 minutes|Difficulty: Standard

Unity has good collaboration tools, however by default Collaborate only keeps three months of versions.

Github allows us to create a repository[1] for out projects.

However Unity creates a lot of unneeded files that we don’t want to back up.

The easiest way to manage Unity using Github is to use Github Desktop.

Software Required

You need[2] to download the following (restart the computer after installing)

Creating the Repository

We need to setup an empty repository in Github (We will copy or move our Unity Project[4] into this later).

Remember don’t make this folder on OneDrive or another cloud drive.

Open Github Desktop

Create a new repository File > New repository…

Give the repository a name (this folder will be created)

In local path select the folder there the repository will be created.

In this example the folder of the repository will be:

E:\Unity\Unity-UI-PlayerSpeed

And the Unity-UI-PlayerSpeed folder will be created and will contain our Unity project[4]

We also need to set a Git ignore file and choose Unity to configure Github to ignore certain files and not back these up. These will be the logs and temporary files.

Click create repository.

We are nearly ready to move / create our Unity project.

However we want to configure the .gitignore file to ignore some additional files.

Click Show in Explorer or Open in Visual Studio Code

Open .gitignore in your editor

You should have a .gitignore that looks similar to this.

We need to modify it.

Add in Logs/ on line 7 and *.log on line 28. This will ignore the entire Logs folder and any files with the extension .log.

Save the file.

[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Bb]uilds/
Assets/AssetStoreTools*
Logs/

# Visual Studio cache directory
.vs/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.opendb
*.VC.db
*.log

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta

# Unity3D Generated File On Crash Reports
sysinfo.txt

# Builds
*.apk
*.unitypackage

You should see the changes in Github Desktop, don’t commit and publish them yet.

Adding the Unity Project

You can now copy your Unity project into this folder or create a new Unity project.

Note if you try to create a project directly into the folder it will give you an error.

Make a project in a different folder initially and then close it.

We can see I have two folders.

We want to move the contents of the Unity Project into the github folder.

Go into the Unity Project folder (in this case[5] Unity-UI-PlayerSpeed2)

Press Ctrl+A to select all and then Ctrl+X to cut the files.

Go to the github folder.

Paste the files here.

Delete the Unity project folder as we don’t need it anymore.

Open Unity Hub.

We need to remove the old project and Add the one in the Github folder.

Click the to the right of the project name.

Select Remove from list

Click Remove from list

Add Existing Github Project

Next click Add to add the folder of the Github Unity project.

Select the folder (go into the folder) and click Select Folder

You can now open and use Unity as normal.

However we need to publish and commit our project.

Committing changes to Github

Switch[6] to Github Desktop

You should see a number of changes.

In the bottom left enter a summary and description of the changes

Click Commit to main

For the first commit you will be asked to Publish repository.

Click Publish repository

Choose the settings.

When you make additional changes Github Desktop will track them

Repeat the above processes

Now you have a Push origin button.

There is also one in the menu bar.

Viewing on Github, adding other users, and downloading copies

To view on Github click Repository[1] > View on Github

You can now see your project.

By clicking on Code you can download a copy of the repository or link to Github desktop.

You would get others to Open with Github Desktop to share a project with others. They then add it as in the Add Existing Github Project section of this lesson.

Adding users to a private repository

If you are working with others you probably don’t want to share your code publically.

You need to add other users to your repository.

On Github.com in the repository, click Settings

Click Manage Access

Click Invite a collaborator

Enter the username or email of the person to add.

Click Add … to this repository

The user us now invited.

You can add additional users through Invite a collaborator

The user you invited will have to go to their email and accept the invitation.

Once they have, the pending invite will disappear and they will have access to your repository.

Terms definitions
2. need. An identified requirement of a person, group, or environment[8]. A need is identified from an issue[10] and sits within a context[11]. Technological practice[7] can be undertaken in an attempt to meet an identified need.
3. control. How a computer system[12] operates or is “controlled”
4. Project. A series of tasks that need to be completed in order to reach a specific outcome[13]
5. case. A control mechanism in which the value of a variable[9] or expression changes the execution of a program and which usually involves multiple branches.
Terms definitions
1. repository. Length: 10 minutes|Difficulty: Standard Unity has good collaboration tools, however by default Collaborate only keeps three months of versions. Github allows us to create a repository for out projects. However Unity creates a lot of unneeded files that we don’t want to back up. The easiest way to manage Unity using Github is to use […]
2. need. Length: 10 minutes|Difficulty: Standard Unity has good collaboration tools, however by default Collaborate only keeps three months of versions. Github allows us to create a repository for out projects. However Unity creates a lot of unneeded files that we don’t want to back up. The easiest way to manage Unity using Github is to use […]
3. control. Length: 10 minutes|Difficulty: Standard Unity has good collaboration tools, however by default Collaborate only keeps three months of versions. Github allows us to create a repository for out projects. However Unity creates a lot of unneeded files that we don’t want to back up. The easiest way to manage Unity using Github is to use […]
4. Project. Length: 10 minutes|Difficulty: Standard Unity has good collaboration tools, however by default Collaborate only keeps three months of versions. Github allows us to create a repository for out projects. However Unity creates a lot of unneeded files that we don’t want to back up. The easiest way to manage Unity using Github is to use […]
5. case. Length: 10 minutes|Difficulty: Standard Unity has good collaboration tools, however by default Collaborate only keeps three months of versions. Github allows us to create a repository for out projects. However Unity creates a lot of unneeded files that we don’t want to back up. The easiest way to manage Unity using Github is to use […]