Developing FreeCAD with GitKraken

Setup git Development
  Download GitKraken (There are different ways to download GitKraken depending on your OS. I use an Arch Linux based distro called Manjaro and added it through my package manager)  In your web browser go to: https://github.com/FreeCAD/FreeCAD  Click the Fork button. This will clone the FreeCAD/FreeCAD repo to your own account. In other words the URL to access your fork of FreeCAD is: https://github.com/GITUBUSERNAME/FreeCAD.git   Open GitKraken and go to File > Clone Repo  GitKraken will now git clone your repository   Now an important point: Please read the different between origin vs. upstream remote repos. Essentially your fork of FreeCAD is the origin repo. The official FreeCAD git repo FreeCAD/FreeCAD is your upstream. You now need to set the upstream repo as FreeCAD.  Go to File > Open Terminal</li>  Enter the following to set up your upstream remote repo git remote add upstream https://github.com/YOURGITUHUBUSERNAME/FreeCAD.git </li>  Now check what remote branches you have set by typing: git remote -v </li>  You should see something like this in the terminal: origin	https://github.com/foobar/FreeCAD (fetch) origin	https://github.com/foobar/FreeCAD (push) upstream	https://github.com/FreeCAD/FreeCAD.git (fetch) upstream	https://github.com/FreeCAD/FreeCAD.git (push) </li>  Switch back to GitKraken interface.</li>  On the left side of the screen you will see a sidebar with a section labled Local double click on the master branch (this will make sure you're on the master branch AKA git checkout master </li>  Click on the Push] icon on the top right side of the interface. This will push your Local master to your Remote origin master</li> </ol>

Deciphering the GitKraken Interface
For more in-depth understanding of the GitKraken interface checkout the Getting Started Guide.
 * Orientation:
 * Local = local machine
 * Local master = your local copy FreeCAD <= symbolized as Blue in Screenshot)
 * Remote = Remote GitHub repos
 * Remote Upstream = Official FreeCAD repo (AKA FreeCAD/FreeCAD) <= Symbolized as Green in Screenshot
 * Remote Origin = Fork of FreeCAD/FreeCAD (should look something like: github.com/YourGitHubUsername/FreeCAD) <= Symbolized as Red in Screenshot

Rebasing
Now all your repos are in sync!
 * Checkout the Local Master branch by double clicking on it (this is the equivalent of typing git branch master in the terminal)
 * Move the mouse to the where latest Upstream commit is, right click mouse and choose Rebase master on upstream/master (this will pull down the Upstream changes in to your Local master)
 * Move the mouse and press the Push button. GitKraken (This pushes from your 'Local master' to 'Remote Origin master')



Resolving Merge Conflicts

 * GitKraken compatible 3rd party external merge tools
 * If none of the above options in GitKraken work for you, it's possible to specify 3rd party git merge tools within your ~/.gitconfig

Squashing Commits
Squashing is when you have several commits you want to condense down in to one commit. From the GitKraken manual: Squashing is available for commits that meet the following requirements: Selection contains more than one commit The youngest commit (by commit date) is also the current HEAD commit Genealogically consecutive Chronologically consecutive The oldest commit in the list has a parent If all these conditions are met, the Squash option appears when you right click the commit node. See screencast at: https://support.gitkraken.com/img/documentation/working-with-files/commits/squash.gif