This project is a fork of GitHub for Unity and is currently in preview. The API part of GitHub for Unity is a .NET Git Client library, without any dependencies on Unity itself. Only the UI part of GitHub for Unity is Unity-specific.
The same applies to this project, which is split into two packages - `com.unity.git.api` - the Git client library; and `com.unity.git.ui` - a Unity Git UI based on the GitHub for Unity UI, which exemplifies how to use the Git client library.
Even though this project is currently a fork, we plan for the API part of this project to become the authoritative implementation source, and split entirely from the original GitHub for Unity implementation.
We're doing this so we can improve the integration between Git and Unity by exposing additional version control C# APIs that Git for Unity can leverage. Therefore, the API may change while we build this, and this project may become dependent on more recent versions of Unity.
This repository is LFS-enabled. To clone it, you should use a git client that supports git LFS 2.x.
Check [How to Build](https://raw.githubusercontent.com/Unity-Technologies/Git-for-Unity/master/BUILD.md) for all the build, packaging and versioning details.
### Release build
`build[.sh|cmd] -r`
### Release build and package
`pack[.sh|cmd] -r -b`
### Release build and test
`test[.sh|cmd] -r -b`
### Where are the build artifacts?
Packages sources are in `build/packages`.
Nuget packages are in `build/nuget`.
Packman (npm) packages are in `upm-ci~/packages`.
Binaries for each project are in `build/bin` for the main projects, `build/Samples/bin` for the samples, and `build/bin/tests` for the tests.
### How to bump the major or minor parts of the version
The `version.json` file in the root of the repo controls the version for all packages.
Set the major and/or minor number in it and **commit the change** so that the next build uses the new version.
The patch part of the version is the height of the commit tree since the last manual change of the `version.json`
file, so once you commit a change to the major or minor parts, the patch will reset back to 0.