These instructions are for historical reference only, but may be of use if the newer processes don't suit your working environment.
## Deprecated: Manual checkout from Github
Steps:
* Perform a standard CiviCRM install from tarball
* Use the "gitify" command to replace the codebase with the latest code from git.
Obtain the existing CiviCRM directory (such as `/var/www/drupal/sites/all/modules/civicrm` or `/home/myuser/src/civicrm`), then run the `gitify` command. You will need to adapt the command arguments, but a typical case would be:
If you develop for multi-CMS, then you might have one copy of CiviCRM (e.g. `/home/myuser/src/civicrm`) shared by each CMS. You can use `gitify` to setup this directory, and then use symlinks to share among CMSs:
Tip: If Git or GitHub are unfamiliar to you, see [Git and GitHub](git.md) first.
## Repositories
CiviCRM is divided into a few repositories. This allows developers to work with different components, allows different teams to manage each component, and will allow all the pieces to be remixed using different tools (civibuild, shell scripts, Drush & Drush make, or composer). The repositories are:
*[civicrm-core](https://github.com/civicrm/civicrm-core/) - Core application which can be embedded in different systems (Drupal, Joomla, etc).
*[civicrm-drupal](https://github.com/civicrm/civicrm-drupal/) - Drupal integration modules, with branches for each CiviCRM release & Drupal major version (e.g. 7.x-4.6, 7.x-4.7, 6.x-4.4, 6.x-4.6).
**Git** is a "source-code management system" or "version control system" – an alternative to Subversion. It was designed for a large open-source project (Linux) and has seen broad adoption among other FOSS projects. **GitHub** is a company which provides hosted, web-based tools for enhancing Git development. For open projects like CiviCRM, its services are free.
Git and GitHub offer advantages for CiviCRM development:
* The tools are already popular among FOSS projects and web developers.
* The tools are free ("as in beer") and mostly free ("as in speech").
* They support off-line development.
* They support lightweight branching, merging, and code-review.
* They support open teams – anyone can jump-in, make changes, and share changes.
For more introductions to Git and Github, see [help.github.com](https://help.github.com/).