-
Notifications
You must be signed in to change notification settings - Fork 1
Using GitHub
By this point, you should have already setup your development environment as per the instructions in the README. If you are only looking for instructions on the basic workflow of developing this project, the README should cover those needs. This page is meant to be a slightly more thorough overview of Git / GitHub and how we're using it in this project.
Put simply, Git is a version control software. Version control (a.k.a. source control) software has a couple primary goals:
- Provide a way to share and maintain constantly-changing files between different users
- Provide a backup and history of all changes ever made to a project
To accomplish these goals, Git allows you to take any folder and store it online. That online folder now becomes the One True Folder™. Now, the way Git supports collaboration is by having a copy of the One True Folder™ on every team member's computer. As opposed to team members changing files on their computer and sending them to each other, with Git you simply make changes on your own local copy of the project, and then send the changes to the One True Folder™. Git then stores a history of all the changes that have ever happened to the project and by who, and lets you update your local copy to the most recent version with a single click! That's it; that's Git!
* For the purposes of version control, and software development in general, the term "project" is always synonymous with "folder" - just like any other folder on your computer.
Now that we understand the core idea behind Git, let's dive into how we can describe the different parts of this process in a more specific way.
- Repository (aka Repo): A repository is what we call a project that is using Git / stored online with Git.
- Remote / Origin: This is what we call the One True Folder™. It's the version of the project that is stored online!
- Local Repo: This what we call your own copy of the remote, stored on your personal computer. Everyone on the project has their own local copy that doesn't affect anyone else's version!
- Clone: When you clone a repository, it means you're creating a new local copy of the remote on your computer. For pre-existing projects, you always need to clone the repository to start working on it on your local computer!
- Commit: A commit is what we call a set of changes to a project. When you make a commit, you are creating a new version of the project. Commits are made to your local repo, and then sent to the Remote whenever you're ready for everyone else to receive your changes!
- Push: A push is what we call sending a commit from your local repo to the remote. This is how you update the remote!
- Pull: Conversely, a pull is what we call updating your local repo with the most recent version of the remote. This is how you get other people's changes!
- Conflict: A conflict occurs when you and another person on the project both try to push different, overlapping changes to the same file. When this happens, you will be given a list of options to take, such as manually merging the two sets of changes together!
We can interact with Git using a variety of tools. In this project, we use GitHub and GitHub Desktop (or your client of choice!).
GitHub is a website primarily used to view and interact with the repository remote directly; but as you can see, it offers a wide number of other related services as well, such as Issues (features/bugs list), Wikis (you are here), and Projects (team progress trackers), amongst many others!
GitHub Desktop on the other hand is a desktop app which will be your primary interface with Git. This lets you see all the changes you currently have in progress, and is where you will use commands such as Cloning, Committing, Pushing and Pulling. Advanced users may also prefer to type the commands directly into a terminal window!
Let's say I'm working on the RPG and I want to add some new sprites to the assets folder. This is my first time ever working on the project.
Since the RPG is an existing project, I must first clone the repository to my computer. That local copy is now just like any other folder on my computer.
To add my sprites, I simply paste them into the Assets folder of my local repo. GitHub Desktop now shows me a list of local in-progress changes, which are the sprites I've added. Satisfied with my changes, I use GitHub Desktop to write a commit message ("Add example sprites") and complete the commit. Desktop no longer shows any changes, but I can see a new commit in my local version history.
Since I have no other changes to do, I decide to push my commit to the remote. I press Push changes in GitHub Desktop, and after a few seconds, observe on the GitHub website that my sprites have been added to the remote repository, along with my commit showing as the most recent change!
Later, I come back to add more sprites, and find that my teammates have pushed some new code to the remote. GitHub Desktop shows me that I'm behind the most recent version on the remote by 2 commits, so I press Pull and observe the commits are added to my local computer's history.
The VGDC rpg is currently in early development stages. All the information in this wiki is subject to change.
Join us on Discord to get involved.
> Home
> Our Team
> Milestone 1: αω plasmashark
Setup
> Merge Conflicts
> Using GitHub
Tools
> Behaviour Trees
Character
> Level Progression
> Alignment
> Inventory
Gameplay
> Gameplay Loop
> Combat
> Quests
> Items
> Dialogue
Art
> Art Style
> Thematic Decisions
> UI
Music + Sound
> Inspiration Board
Story
> Prologue