Source control: Difference between revisions
Mochipie95 (talk | contribs) No edit summary |
Mochipie95 (talk | contribs) No edit summary |
||
Line 3: | Line 3: | ||
== Classic source control == | == Classic source control == | ||
* [https://drive.google.com/ Google Drive] | * [https://drive.google.com/ Google Drive] | ||
* [https://www.dropbox.com/ Dropbox] | * [https://www.dropbox.com/ Dropbox] | ||
* [https://discord.com/ Discord] | * [https://discord.com/ Discord] | ||
* any application that allows file sharing | * any application that allows file sharing | ||
Line 11: | Line 14: | ||
=== Tools === | === Tools === | ||
* [https://git-scm.com/downloads Git] | * [https://git-scm.com/downloads Git] | ||
* [https://www.mercurial-scm.org/ Mercurial] | * [https://www.mercurial-scm.org/ Mercurial] | ||
Line 17: | Line 21: | ||
=== Terminology === | === Terminology === | ||
* Repository: folder containing the game assets that the version control system will track | * Repository: folder containing the game assets that the version control system will track | ||
* Clone: make a copy of a repository hosted on a website (e.g. GitHub) and download it | * Clone: make a copy of a repository hosted on a website (e.g. GitHub) and download it | ||
* Commit: record a set of changes made to the tracked files in the repository | * Commit: record a set of changes made to the tracked files in the repository | ||
* Commit History: list of all commits/changes made to the repository | * Commit History: list of all commits/changes made to the repository | ||
* Branch: group of commits on top of a base commit history | * Branch: group of commits on top of a base commit history | ||
* Merge: combine two branches/commit history to form one commit history | * Merge: combine two branches/commit history to form one commit history | ||
* Merge Conflicts: conflicting changes detected when attempting to merge | * Merge Conflicts: conflicting changes detected when attempting to merge | ||
* Pull: merge the remote/hosted branch into the local branch (website to local) | * Pull: merge the remote/hosted branch into the local branch (website to local) | ||
* Push: merge the local branch into the remote/hosted branch (local to website) | * Push: merge the local branch into the remote/hosted branch (local to website) | ||
=== Quick start === | |||
Quick guide for setting up with GitHub because it's free and widely used: | |||
==== Do it once ==== | |||
You can use GitHub either with the Command Line Interface (CLI) or GitHub Desktop. Installing GitHub Desktop also installs Git for the CLI. | |||
===== Git CLI ===== | |||
1. Create a GitHub account [https://github.com/signup here] | |||
2. Install Git [https://git-scm.com/downloads here] | |||
3. Set your GitHub username and email on the CLI (refer [https://docs.github.com/en/get-started/getting-started-with-git/setting-your-username-in-git#setting-your-git-username-for-every-repository-on-your-computer here] and [https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address#setting-your-commit-email-address-in-git here]) | |||
4. Create a personal access token, set it to never expire and save it somewhere ([https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-token steps here]) | |||
===== GitHub desktop ===== | |||
1. Create a GitHub account [https://github.com/signup here] | |||
2. Install GitHub Desktop [https://desktop.github.com/ here] | |||
==== New game setup ==== | |||
===== Git CLI ===== | |||
1. Create a new repository on GitHub ([https://docs.github.com/en/get-started/quickstart/hello-world#creating-a-repository steps here]) | |||
2. Google for the gitignore file of your game engine (here's ([https://raw.githubusercontent.com/renpy/renpy/master/.gitignore renpy]) | |||
3. Add the .gitignore file in the repository and commit on GitHub (refer [https://docs.github.com/en/get-started/quickstart/create-a-repo#commit-your-first-change here]) | |||
4. Clone the repository to your computer ([https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository#cloning-a-repository steps here]) | |||
5. Add your game files to the repository and commit in CLI | |||
```git commit -m "add game files !"``` | |||
6. Happy jamming ! | |||
For more references on getting started with GitHub, here's the official [https://docs.github.com/en/get-started/quickstart/hello-world docs]. |
Revision as of 16:56, 24 June 2022
Source control is a set of activities which is often performed by any member of the team who is producing game assets of any kind (script, art, music, code, etc). It involves managing and organizing different versions of the assets produced, communicating to the team about changes made and the version to use for relevant team members. With VNs that have longer development duration, a version control system can be used to assist the development team in managing asset changes as well as facilitate coding in parallel. The job of managing the version control system typically falls under the programmer's role.
Classic source control
- any application that allows file sharing
Version control system
Tools
Version control systems such as Git is often used along with a repository management service such as GitHub or Bitbucket. These services allow you to make coding assets and game builds available for all team members (or the public if desired), with additional functionalities unique to version control system such as pull requests which supports coding in parallel. Similar to file sharing websites, these hosting services can serve as backup of game assets and protection against irreversible changes, as all committed changes are recorded and any earlier version of the game assets can be recovered.
Terminology
- Repository: folder containing the game assets that the version control system will track
- Clone: make a copy of a repository hosted on a website (e.g. GitHub) and download it
- Commit: record a set of changes made to the tracked files in the repository
- Commit History: list of all commits/changes made to the repository
- Branch: group of commits on top of a base commit history
- Merge: combine two branches/commit history to form one commit history
- Merge Conflicts: conflicting changes detected when attempting to merge
- Pull: merge the remote/hosted branch into the local branch (website to local)
- Push: merge the local branch into the remote/hosted branch (local to website)
Quick start
Quick guide for setting up with GitHub because it's free and widely used:
Do it once
You can use GitHub either with the Command Line Interface (CLI) or GitHub Desktop. Installing GitHub Desktop also installs Git for the CLI.
Git CLI
1. Create a GitHub account here
2. Install Git here
3. Set your GitHub username and email on the CLI (refer here and here)
4. Create a personal access token, set it to never expire and save it somewhere (steps here)
GitHub desktop
1. Create a GitHub account here
2. Install GitHub Desktop here
New game setup
Git CLI
1. Create a new repository on GitHub (steps here)
2. Google for the gitignore file of your game engine (here's (renpy)
3. Add the .gitignore file in the repository and commit on GitHub (refer here)
4. Clone the repository to your computer (steps here)
5. Add your game files to the repository and commit in CLI
```git commit -m "add game files !"```
6. Happy jamming !
For more references on getting started with GitHub, here's the official docs.