Git Overview
All professionally managed projects require some kind of version control system.
This type of software goes by several names:
- Version Control System (VCS) / "Version Control"
- Source Code Management (SCM) / "Source Control"
We'll stick to the name "Version Control" to keep it simple. Professional game development typically uses either Perforce or Git. - We will be using Git, as it is free and open source. While it's less popular for game development than Perforce is, it is a tool that you can continue to use for free in your personal projects after you learn to use it during BUGJam.
There are four components to Git that you need to know about:
- Git
- Git LFS
- Git GUI
- Software Forge
Git
Git is a "decentralized" version control system. It is a command-line tool used primarily for software development. It manages source code repositories, and tracks versions of files that you check in. Git by itself is a powerful tool, but it is incomplete for our needs. Since it is decentralized, it doesn't need to connect to a central server in order to function, but without a central server you can't easily collaborate with other people.
Git LFS (Large File Storage)
By default, large art assets (binary files) aren't well supported by Git. The de facto solution to this is a plugin for Git called "Git LFS" (Large File Storage). You will not interface with LFS differently than you would with regular Git, it runs in the background and moves your large files into a large files storage container on the server. Once it's installed you can forget that it even exists.
Git GUI (Graphical User Interface)
Git is a command line tool, this means you interface with it by typing commands into the terminal, so unless you're well versed in typing all of your commands into the console, its usually not a desirable way to work. So third-party tools are available to add a graphical user interface to Git. There are dozens to choose from but we will be focusing on a free and open source tool called "SourceGit".
Git GUI tools are all just wrappers on top of git, and they just issue commands via the Git command line on your behalf, they all do the same thing, but some offer a much better experience than others. SourceGit is very new, and a little rough around the edges as it is in rapid development, but it's one of the best FOSS options.
Software Forge
Git's decentralized nature means that it doesn't have it's own system for hosting the repository. During collaboration we need a place to push our changes to so that others can pull those changes. Among very many other awesome features, this is something that "Forgejo" provides. This is hosted on the server, you do not download this, instead you access it via a web browser.
No comments to display
No comments to display