The Source Control you need
Fully integrated centralized source control workflow, work in the same way the big game studios already do!
Fully Integrated in Unreal
GitCentral is fully integrated in Unreal. The user-friendly workflow is intuitive and can be learned by anyone in a few minutes only! Without the need for context switching, your team can focus on creating without losing any time. As you perform all the source control actions direction from Unreal's Content Browser, your team will never struggle with git again!
Resolve Conflicts
Since binary files such as assets cannot be merged, your team may run into conflicts. This happens when someone changes an asset locally while someone else has changed the same asset and shared it to the central repository. In this case, GitCentral enables conflicts to be resolved easily, simply by choosing to keep your own version or the version already shared on the central repository. It's simple as that.
You can resolve conflicts on a single file using the contextual menu in the content browser, or use the Resolve Conflicts dialog to resolve all the outstanding conflicts at once.
Centralized Source Control
GitCentral is centralized and file-based just like industry standard source control solutions for game development
GitCentral turns Unreal into a collaboration tool built for game development. Major game studios are still using centralized source control solutions such as Perforce because it is best suited to the needs of a game development team. GitCentral works around limitations of Git to enable your team to use the same workflow.
Centralized source control
GitCentral uses a shared remote git repository to track the changes made to your project by your team members. This means everyone is collaborating to the same repository, can see the changes made by others and synchronize them.
Difference with traditional Git: Git is designed as a distributed source control to support open-source programmer workflows. This is usually not the desired workflow for game development: it is too complex for non-technical people to effectively work with, and doesn't work well with Unreal assets as they cannot be merged. This is why most game studios use a centralized source control system such as Perforce or SVN. In game development, the whole team works on the same project and want to share their changes as fast as possible and stay up to date with the others. GitCentral enables your team to access this workflow and its benefits.
Sync or share only what you need
GitCentral implements the same tried and true source control workflow used in all the major game studios. If you only need to update or share a few assets, you can just do that! If you need to share all your changes or update the entire project, do it only when you really need it. This is a major time saver, and enables you to iterate as fast as possible on what you really care about.
Difference with traditional Git: Git is designed to force you to be up to date with all the changes published by your team before you can share your own changes. This is undesireable in a game development environment, as this could take a huge amount of time, every time you want to push a change. Imagine hundreds of people working on a very large project, sharing changes constantly. If you always needed to download every single one of those changes every time you want to share something, you would spend most of your day waiting for your project to be updated. GitCentral enables you to sync or share assets selectively, so you can control what you need to be up to date on, and what you can leave for later.
Programmers love GitCentral
GitCentral allows programmers to harness the full power of Git while hiding complexity for less technical users
GitCentral is powered by Git.
Git is a very powerful source control system that is quickly becoming the standard for programmers outside the games industry. Programmers tend to love Git for its powerful branching and merging engine, and ability to work in a distributed fashion. Artists and Designers however, have a hard time interacting with Git, which requires knowledge of the command line or usage of complex external tools. GitCentral is designed to hide all the complexity from Git and support the best workflow when dealing with assets inside Unreal Editor. This helps everyone focus on what they do best. Non technical people won't have to deal with git directly and will never make costly mistakes or ask for programmer support again. For programmers, the full power of Git remains available.
Familiar Workflow and Tools
Use Git and all of its power to version your source code, including branching and distributed workflow. GitCentral does not perform any action that is not natively present in Git. This means you can use git command line and graphical user interfaces you are familiar with. Integrate with the entire Git ecosystem, most importantly Hosting providers, Continuous Integration and Code Review tools.
Clean Code History
We recommend to split your repositories so the Content folder is in a separate git repository. While this may seem more complex at first, it allows programmers to work freely on the source code without interference from GitCentral. An added benefit is that the history of the code repository will be separate from the content changes. This makes it easier to track your code changes, and when troubleshooting you can roll back code and content independently to track down issues, which is a common use-case for game development.
Branch support
Branches are very useful during the lifetime of your project. When delivering a milestone, or stabilising a release build, you will want your users to work on different branches. GitCentral fully supports branch workflow. As an added bonus, you may use several remote repositories if necessary.
File Locking
GitCentral supports file locking if your Git hosting provider allows it. File locking prevents two team members from working on the same file and creating conflicts. GitCentral's file locking feature also allows you to force a file to be writable even if it is locked, so you are never blocked. You may not check in the changes while another user has the file locked, or if a newer version has been pushed to the central repository. This gives you the best of both worlds.
Host your Project
Host your repository using one of the many git hosting providers available, or host it yourself on-premises or in the cloud and remain in full control of your data.
Here are some popular hosting providers:
All of these hosting solution provide free and paid git repositories, as well as advanced project management features such as planning, issue tracking and code review tools.
If you are evaluating hosting solutions, make sure to consider your needs in at least the following areas: privacy of the project, team size, project size on disk. The pricing model varies for each hosting provider but as game developers, you will usually end up with a larger team and project size than typical programming projects.
In the blog you will find a full comparison of the major Git hosting providers.
Scale your Project
GitCentral stores assets using Git LFS. This allows for repositories to scale to unprecedented sizes without impeding the workflow.
The main difference is that the binary files are not stored in the .git folder but on a remote data storage. The size of your local repository stays manageable even as many revisions of assets are committed.
Git LFS also allows for advanced features such as exclusive file locking and managing permissions.
Why not use the built-in Git Unreal plugin ?
The built-in Unreal plugin does not support working with remote repositories, which makes it unsuitable for any team collaboration scenario. For example, your changes will not be shared, the history of an asset will only reflect the changes you made locally and you will not be able to share or update only what you need. You will also need to use the command line to push your changes to a remote repository.
GitCentral is based on the built-in Unreal plugin and extends it to support team collaboration.
All credits go to Sebastien Rombauts as the author of the original Git plugin.