Git step-by-step guide

Luca D'Amico 2017-09-08 13:24:43 +02:00
parent b57a2299c5
commit 3609c83e25
1 changed files with 29 additions and 0 deletions

@ -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".