Contributing using git - PuzzleServer/mainpuzzleserver GitHub Wiki

Contributing using git

Creating your own fork

If you wish to contribute changes back to the mainpuzzleserver repository, start by creating your own fork of the repository. This is essential. This will keep the number of branches on the main repository to a small count. This will also prevent mistakes in pushing upstream to the mainpuzzleserver repository. In your own fork, you can create as many branches as you like.

  • Navigate to Github with a browser and login to your github account. For the sake of this document, lets assume your account is johndoe.
  • Navigate to mainpuzzleserver repository in the same browser session.
  • Click on the fork button at the top right corner of the page.
  • Create the fork on your user name. Your github profile should now show mainpuzzleserver as one of your repositories.
  • Create a folder on your device and clone your fork of the mainpuzzleserver repository. e.g. https://github.com/**johndoe**/mainpuzzleserver.git. Notice how your github user name is in the repository location.
    > git clone https://github.com/johndoe/mainpuzzleserver.git

Setting up the upstream repository

Before starting to contribute changes, please setup your upstream repository to the primary mainpuzzleserver repository.

When you run git remote -v, you should see only your fork in the output list

> git remote -v
     origin  https://github.com/johndoe/mainpuzzleserver.git (fetch)
     origin  https://github.com/johndoe/mainpuzzleserver.git (push)

Map the primary mainpuzzleserver repository as the upstream remote

> git remote add upstream https://github.com/PuzzleServer/mainpuzzleserver.git

Now running git remote -v should show the upstream repository also

> git remote -v
     origin  https://github.com/johndoe/mainpuzzleserver.git (fetch)
     origin  https://github.com/johndoe/mainpuzzleserver.git (push)
     upstream        https://github.com/PuzzleServer/mainpuzzleserver.git (fetch)
     upstream        https://github.com/PuzzleServer/mainpuzzleserver.git (push)

At this point you are ready to start branching and contributing back changes!

Merging upstream main into your fork main

From time to time, your fork will get out of sync with the upstream remote. Use the following commands to get your fork up up to date.

git fetch upstream
git checkout main
git pull upstream main
git push

Merging upstream main into your current branch

From time to time, your current branch will get out of sync with the upstream remote. Use the following commands to get your branch up to date.

git fetch upstream
git pull upstream main
git push