Git and GitHub
If you want to know how we keep track of OpenSim's history or you want to contribute to OpenSim, you need to know about git and GitHub.
OpenSim on GitHub
Our official GitHub organization is opensim-org: https://github.com/opensim-org.
Git terminology
Before reading, please view the GitHub General WorkFlow Page
Master branch
The master branch is the most up-to-date, stable version of the code. This branch is maintained by the OpenSim Team. Usually, people do not commit directly onto the master branch.
Branches
Branches other than the master branch are used to work on new code design, fix bugs and experiment. Branches are merged to the master using pull requests and can only be merged if all tests pass. A conceptual map of how this branching works can be found and here.
Tags and Releases
Tags and Releases are references to a specific commit in the repository, marking for specific moments in the development history. We use tags solely to mark the commit used for a release of the software. GitHub lists all the releases/tags in the repository.
Git Clients for Windows
Here are some ways to use Git for windows users:
Git Bash (Git Shell) | A command window or shell that is controlled using typed commands. Requires a knowledge of the commands available. | |
TortoiseGIT | For user's used to tortoiseSVN, tortoiseGIT gives functionality through 'right-click' cammands on folders and files in your workspace. | |
GitHub for windows | A simplified, clean GUI that gives all the main functionality with simplified features. |
GitHub resources
- The git book. Really well-written. If you want to understand what's going on, look here.
- Interactive way to learn the basics of command-line git.
- Pretty thorough description of different git commands.
List of git/github cheat sheets:
- GitHub Cheat sheet.
- GitHub common workflow.
- Very interactive. Shows workspace, index, local repo, remote repo.
- An annotated list of commands.
- Workflow, and rebase.
- Organized by commands.
- Commands, including (some) advanced.
Contributing using forks
We welcome any contribution to our source code! However, only certain people have write access to the repositories in our organization. This is done to ensure we can review the changes people want to make to OpenSim. Here's the process to contribute:
- Make a fork of one of the opensim-org repositories.
- Clone your fork to your computer.
- Make your changes to OpenSim, and commit them.
- Push your changes back to your fork on GitHub.
- Go to the GitHub website and open a pull request to the master branch of the opensim-org repository you want to contribute to.
This diagram illustrates forks, clones, pull requests, pushing, and pulling:
OpenSim is supported by the Mobilize Center , an NIH Biomedical Technology Resource Center (grant P41 EB027060); the Restore Center , an NIH-funded Medical Rehabilitation Research Resource Network Center (grant P2C HD101913); and the Wu Tsai Human Performance Alliance through the Joe and Clara Tsai Foundation. See the People page for a list of the many people who have contributed to the OpenSim project over the years. ©2010-2024 OpenSim. All rights reserved.