From 3609c83e257ad2b9939c5f9e2c28a5948a49c307 Mon Sep 17 00:00:00 2001 From: Luca D'Amico Date: Fri, 8 Sep 2017 13:24:43 +0200 Subject: [PATCH] Git step-by-step guide --- Developer-notes.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Developer-notes.md b/Developer-notes.md index 8f8f1a3..50352d0 100644 --- a/Developer-notes.md +++ b/Developer-notes.md @@ -6,3 +6,32 @@ Cxbx-Reloaded is developed in C++ using [Microsoft Visual Studio 2017 Community] Since Cxbx-Reloaded launches another process instance of itself for emulation, debugging in Visual Studio doesn't work out of the box. This can easily be remedied, by installing and enabling the [Microsoft Child Process Debugging Power Tool](https://marketplace.visualstudio.com/items?itemName=GreggMiskelly.MicrosoftChildProcessDebuggingPowerTool). + + +## How to properly send your code contributions (git) + +This is a step-by-step guide to keep your forked copy of Cxbx-Reloaded updated, to create a branch for your work and to send a PR. +If you want more informations about git commands, you can read this free book: https://git-scm.com/book/en/v2 +Special thanks to @PatrickvL and @RadWolfie. + +# First time setup (aka adding the upstream remote) +You have to follow these steps only the firt time you fork Cxbx-Reloaded: +1) Fork mainline Cxbx-Reloaded repository on GitHub by clicking the "Fork" button (upper-right) and clone it to your hard drive. +2) Open a git shell in the root directory of your cloned repo and paste this command (without quotes): "git remote add upstream https://github.com/Cxbx-Reloaded/Cxbx-Reloaded.git". +3) Now type (without quotes) "git remote -v". If you see two "origin" and two "upstream": congratulation, you have completed the first time setup. + +# Keep your fork updated +You have to follow these steps anytime you want to update your forked Cxbx-Reloaded repo: +1) Open a git shell in the root directory of your cloned repo and paste these commands (without quotes): "git fetch upstream" and then "git checkout master". +2) Now type (without quotes): "git rebase -i upstream/master" and check if every commit looks good. +3) You may need to run (without quotes): "git push origin master --force" to update your repo on GitHub. + +# Create a branch for your new contribution +You should keep the master branch of your forked repo clean, and instead create a new branch for every contributions you want to send. +Before creating a branch MAKE SURE THAT YOUR FORK IS UP-TO-DATE! +Please change "name_of_new_branch" with something meaningfull like "fixing-issue-X". +1) Create a branch using this command (without quotes): "git checkout -b name_of_new_branch". +2) Switch to your new branch with (without quotes): "git checkout name_of_new_branch". +3) Push your new branch on GitHub running (without quotes): "git push origin name_of_new_branch". +4) Now do your work, and when done send a PR directly from GitHub (go to your branch and click "Pull Request"). +5) When your work is merged in mainline, you can safely remove your branch by typing(without quotes): "git checkout master" then "git branch -d name_of_new_branch" and finally "git push origin :name_of_new_branch".