β Back to Home
In This Article:
π€ Notice something is missing or not working? β Please contact Zoel (zoelbastianbach@agate.id) on Ms. Teams!
Git allows us to easily synchronize changes with other users and machines, which lets you and your teammates work on the same codebase.
Every quest will need to have its own repository. When the quest is started, lead programmer has to ask to create repository for maintaining source code or other sensitive things. Here's the step for requesting versioning repository
Branching is creating a clone of project source code repository, separating code revision from the main branch (trunk).
Branch Name | Usage |
---|---|
master | Base for latest release version. Note that this branch is owned by Lead |
develop | Base for ongoing development version. Note that this branch is owned by Lead |
feature/[issue_name] | Implement feature of [issue_name]. Can only be created from develop branch |
bugfix/[issue_name] | Fix bug of [issue_name]. Can only be created from develop or release branch |
stable/[version_number] | Stable version, example: stable/0.5.0 |
hotfix/[version_number] | Hotfix for stable version of [version_number]. Example: hotfix/0.5.1. Can only be created from master |
release/[version_number] | Preparation for release of [version_number]. Example: release/1.0.0. Note that this branch is owned by Lead |
assets/[issue_name] | Git branch for storing your images in the repo |
vfx | Git branch for the visual effects |
gamedesign | Git branch for storing gamedesign |
All changes and commits to the develop, release, and master branch must be in the form of a merge request, DO NOT directly commit to these branches
<aside> π‘ Initial project setup is still fine to commit to these directly
</aside>
Most feature, bugfix, or hotfix branches and merge requests will derive from an Issue opened on gitlab
Release branches can only contain bug fixes, no new features can be added
Bugfix branches will most likely come from a Bug Issue issued by a QA or external team
Feature branches will most likely come from a Feature Request Issue Issued by developers (maintainer or lead), QA, or external team
<aside> βΉοΈ The graph below is taken from a successful git branching model article http://nvie.com/posts/a-successful-git-branching-model/
</aside>
Programmers only may commit code when:
If programmer accidentally commit when above prerequisite unfulfilled, the programmer should fix or patch it immediately and commit the code again with proper comment (see Commit Guideline β)
Programmer should commit the code to the repository when:
A typical git commit comment should look like this one:
<type>(<optional scope>): <subject>
Example:
fix(core): game load error
Type should only compromises one of this:
build
: Build related changes (eg: npm related/ adding external dependencies)chore
: A code change that external user won't see (eg: change to .gitignore file or .prettierrc file)feat
: A new featurefix
: A bug fixdocs
: Documentation related changesrefactor
: A code that neither fix bug nor adds a feature. (eg: You can use this when there is semantic changes like renaming a variable/ function name)perf
: A code that improves performancestyle
: A code that is related to stylingtest
: Adding new test or making changes to existing testScope is optional, must be a noun, and it represents the section of the section of the codebase
After branching, merging will happen. Merging is combining the revisions from the branch to the trunk. Merging step is described below: