Simple but powerful git integration for Unity 3D utilizing TortoiseGit (for Windows), SnailGit (for MacOS) or RabbitVCS (for Linux) user interface. A must have plugin if you use git as your version control system in your project.
Features
Usage
Installation
Overlay Icons
Screenshots
- Hooks up to Unity move and delete file operations and executes respective git commands to stay in sync.
- Handles meta files as well.
- Moving assets to unversioned folder will ask the user to add that folder meta to git as well.
- Moving folders / files that have conflicts will be rejected.
- Will work with other custom tools as long as they move / rename assets using Unity API.
- Provides assets context menu for manual git operations like commit, push, pull, revert etc.
- Show overlay git status icons
- Show server changes that you need to merge (works by regularly fetching remote changes).
- Show locked files by you and your colleges (works via LFS locks).
- Show ignored icons (by ".gitignore").
- Displays warning in the SceneView when the current scene or edited prefab is out of date or locked.
- Lock prompt on modifying assets by path and type (perforce checkout like)
- If asset or its meta becomes modified a pop-up window will prompt the user to lock or ignore it.
- The window shows if modified assets are locked by others or out of date, which prevents locking them.
- If left unlocked, the window won't prompt again for those assets. Will prompt on editor restart.
- Git submodules support
- Minimal performance impact
- Survives assembly reloads
- You don't have to leave Unity to do git chores.
- Works on Windows, MacOS and Linux.
- Simple API to integrate with your tools.
- Use
WiseGitIntegration.RequestSilence()
andWiseGitIntegration.ClearSilence()
to temporarily suppress any WiseGit pop-ups. - Use
WiseGitIntegration.RequestTemporaryDisable()
andWiseGitIntegration.ClearTemporaryDisable()
to temporarily disable any WiseGit handling of file operations and updates. - Use
GitContextMenusManager
methods to invoke TortoiseGit / SnailGit / RabbitVCS commands. - Use
WiseGitIntegration.*Async()
methods to run direct git commands without any GUI (checkExampleStatusWindow
).
- Use
Check the screenshots below
NOTE: This was started as a quick fork of WiseSVN.
Do your file operations in Unity and the plugin will handle the rest.
User git operations are available in the menu (or right-click on any asset): Assets/Git/...
WARNING: Never focus Unity while the project is updating in the background. Newly added asset guids may get corrupted in which case the Library folder needs to be deleted.
Preferred workflow is to always work inside Unity - use the "Assets/Git/..." menus. "Assets/Git/Pull All" will block Unity while updating, to avoid Unity processing assets at the same time.
This is an issue with how Unity works, not the plugin iteself. Unity says its by "design".
- Asset Store
- OpenUPM support:
npm install -g openupm-cli
openupm add devlocker.versioncontrol.wisegit
... or merge this to your Packages/manifest.json
(replace the package version XXXXX with current):
{
"scopedRegistries": [
{
"name": "package.openupm.com",
"url": "https://package.openupm.com",
"scopes": [
"devlocker.versioncontrol.wisegit"
]
}
],
"dependencies": {
"devlocker.versioncontrol.wisegit": "1.0.XXXXX"
}
}
- Github upm package - merge this to your
Packages/manifest.json
{
"dependencies": {
"devlocker.versioncontrol.wisegit": "https://github.com/NibbleByte/UnityWiseGit.git#upm"
}
- You need to have git 2.43.0 or higher installed with LFS support (used for locking).
- It is recommended to have TortoiseGit (for Windows), SnailGit (for MacOS) or RabbitVCS (for Linux) installed, so the context menus work.
- Test if git works by typing "git version" in the command line / terminal