phpBB Tutorial

All free phpBB styles available on this website have repositories at GitHub. You can use it to easily keep your styles up to date.

This tutorial is intended for phpBB styles available on Artodia.com, but it also applies to many open source projects, including phpBB itself.

What are Git and GitHub?

Git is a version control system.

GitHub is online service that hosts Git repositories and makes it very easy to manage.

What can I do with it?

You can synchronize several versions of same project by making forks or branches of original project.

For phpBB styles available on this website it allows you to keep your style up to date, while keeping your custom changes.

It might take a while to get used to it, but effort is well worth it. Its brilliant. I can keep track of all updates, old versions of software, create custom versions that I can easily update later, work on project with other people or work on it on several computers. I'm using GitHub for almost all my projects, including some private projects.

How does it work?



You start with original repository that contains code that you want to modify. If you own that repository, you can create a new branch where your changes will be stored. If you do not own that repository (like repositories of phpBB styles offered on this website), you can fork it.

Forking is easy: create account on GitHub, sign in, visit repository that you want to fork and click "Fork" link.



t will create your own copy of project. In this sample original project is cyberalien/phpbb3_helion, clicking that button will create project yourname/phpbb3_helion that is an exact copy of cyberalien/phpbb3_helion, but with you having full access to it.

Next thing you'll need to do is install Git on your computer. See "Set Up Git" tutorial on GitHub.

After installing Git, you need to clone GitHub's repository to your computer. See "Fork a Repo" tutorial on GitHub.

Applying changes to code

You have set up Git, forked a repository, cloned it to your computer. Now your have your own version of phpBB style or whatever project you were forking.

Check out appropriate branch by using this command:
Code:
git checkout master
Most projects use "master" for main branch, but most of styles available on this website have several branches. Mobile style uses "master" branch, but other styles use "style_name/style" (replace style_name with style name) branches. For example, Helion style is stored in branch "helion/style". Color variations of my styles also have color scheme name in branch, such as "elegance/black/style" for Elegance Black and "colorizeit/black/style" for ColorizeIt Black, so instead of checking out "master", you need to check out "elegance/black/style" or whatever correct branch name is.

See readme in master branch to find out which branch you need to check out.

Apply your changes to style, commit them by running these commands:
Code:
git add *
git commit -m "changing something"
git push origin master
First line will add your modified files to commit. If you have removed a file, use "git rm path_to_file".

Second line will commit your changes to Git branch. Message in quotes is a commit message. It is for your own reference, as well as for people who might want to fork or watch your project (if it isn't private and someone is interested in forking it).

Third line will push your changes to GitHub server. Change "master" to other branch name if you have modified another branch, or skip parameter to push all modified branches.

Synchronizing branches

You have created your own fork, applied some changes. That fork will not magically update itself to latest version of original fork, you need to update it by running few commands.

It is done in few lines:
Code:
git checkout master
git fetch upstream
git merge upstream/master
git push origin master
If you are using "black" branch or some other branch other than "master", replace "master" with your branch name in that code.

First line will check out your main branch. Use it to make sure you are on correct branch before merging branches. If you haven't changed branches, you can skip that line.

Second line will get latest version of style from original repository.

Third line will merge your master branch with upstream/master. It will automatically apply changes that were done in upstream/master (original repository's master branch) to your master branch.

Look at result of merge, there might be some conflicts. If there is a conflict, manually edit file to resolve conflict (fix code), add your changes (git add *) and commit (git commit -m "whatever") them.

Last line will push updated code to GitHub server.

That's it. This basic information is enough to get you started with Git. Refer to Git manual, GitHub guides or just search web for solution to problems that you might encounter.

If you have any questions or ran into problems, please post your questions on support forum.