From FreeCAD Documentation
Jump to navigation Jump to search
Sandbox Page for "Piffpoof"

Using Git and the GitHub Repository


The FreeCAD system is programmed, tested and documented by numerous people spread around the world. A commercial hosting service called GitHub is used to contain all the working and archive source code and test data for the project. Additionally it holds all the changes and version history for the source code and data. A separate website is used for discussion forums and a documentation Wiki. GitHub is based on the Git system which is a distributed revision control system and is free software under the GNU General Public License. (Git documentation, which GitHub uses, is available here) The GitHub allows persons involved with the FreeCAD project to work independently and coordinate documents (e.g. code, data) through GitHub as needed. New versions of FreeCAD are generated using GitHub and bugs are identified and rectified using GitHub. GitHub provides the following services for the FreeCAD project:

  • distributed revision control
  • source code management
  • a command-line tool
  • web-based graphical interface via the desktop
  • access control

FreeCAD uses GitHub in two main areas:

  • source code management and system build
  • storage and revision control of data files

These 2 related but separate areas are covered in the two following sections.

Setting up Git and GitHub

Getting a GitHub Signon ID

The FreeCAD repositories are located on the GitHub servers and each GitHub user must have a User ID so the first thing is to get set up. Go to where you will supply the usual:

  • User Name
  • contact email account
  • password

Select the the plan that suits your needs, the Free account (0$ per month for 0 private repositories) is sufficient for working with the FreeCAD repositories.

You are now ready to set up access to GitHub.

Selecting the Git Software

FreeCAD uses the GitHub servers, there are two options to interact with them:

   GitHub offers 2 desktop apps which have GUI interfaces:
       GitHub on Mac
       GitHub on Windows
       there doesn't appear to be one for Ubuntu and Fedora but there are a number of 3rd party GUIs for Git
   Git protocol which is command line mode

This page will only document the command line mode as the GUI apps come with their own documentation and are specific to the platform. 1.3 Installing the Git Software

For the 3 platforms:

Macintosh Installation

       go to Source Forge and download the .DMG file
       Create a folder that will hold the Git install image and later the Git repositories.
       Double-click the DMG file (which will be in the Downloads folder), Once it is mounted open it in a Finder window and copy the contents to the folder you created.
       Double-click the package (ends in .PKG) to install GIT. This will install git to /usr/local/git. Root access is required. It will ask for an administrator account and password.
       Git should now be installed and operational. You can now start using it as described in the next section. If  you want to check it simply type git and the system will list the git summary of commands.

Ubuntu & Fedora Installation

       <needs to be filled in>

Windows Installation

       <needs to be filled in>

Using Git and GitHub With Files

   go to the GitHub home page and sign in
   create a new repository on GitHub as outlined here
       click on the plus sign ("+") on any page
       give your repository a name
       a description always helps
       set your repository as public/private
           Note: if you are on the free (i.e. pay no money plan) then you can only create a Public repository
       do not check the box or select the 2 menus to create any of the optional items (e.g. README, license, .gitignore) as they may conflict later cause a conflict
       click Create Repository
       leave this webpage open as it will be needed in the next step
   upload your files to your newly created repository as outlined here
       open up the Terminal application
       change your working directory to the folder holding your file:
       cd ~/Desktop/myFirstRepository
       intialise the directory as a local Git repository:
       git init
       add the files in your new (on disk)  repository
       git add .
       notice that there is a space and a period fallowing the command
       now commit them to the GitHub repository with a descriptive comment
       git commit -m 'First commit of my files to my repository'
       your files are now copied to the GitHub repository and put under version control.
       return to the webpage from the previous step, click on the icon to copy the URL of your repository on the GitHub server, the URL will be of the form:
       you can also copy this URL by normal means
       in the Terminal application enter:
       git remote add origin
       which will designate the central version of the repository on the GitHub server as the master copy (i.e. the origin)
       still in the Terminal enter:
       git push origin master
       this will copy the changes from your local on-disk repository to the central master copy located on the GitHub server. you will be asked for your GitHub User ID and password.
       your new repository is now fully created on the GitHub server
   adding files to the repository
       move or copy the new files that you wish to add to the Git repository directory on your local disk: (~/Desktop/myFirstRepository in the example above)
       in the Terminal application set your working directory the local repository:
       cd ~/Desktop/myFirstRepository
       git add yourNewFile1.jpg
       git add yourNewFile2.txt
       this will add the 2 files to your local Git repository
       as with the previous example, now commit them to the GitHub repository with a descriptive comment
       git commit -m 'adding 2 new files to fill in the gaps'
       your files are now copied to the GitHub repository and put under version control.
       and finally copy the files from your local repository to the central one:
       git push
       your 2 new files are now both in your local repository as well as propagated to the central repository on GitHub
   making changes to files in the repository

Using Git and GitHub to Build FreeCAD