GitHub is a popular collaborative environment in coding projects, which allows you to easily follow projects, to see who has branched the main branch/code, and to keep tabs on what other GitHub users are working on. It allows you to sync Metadata from platforms like It is used alongside other tools in Salesforce deployment.

Most Salesforce users will tell you that Salesforce deployment is not easy. A lot of time is spent and the process is error-prone, and this is made worse if you are deploying to multiple environments. A typical Salesforce deployment involves:

  • Modify the main code
  • Recording which files are deleted, modified, and added
  • Logging into sandbox where the code is stored
  • Creating changesets
  • Manually selecting all the components that are to be deployed
  • Selecting the target where the changeset are to be deployed
  • Logging into the target Salesforce .org were you sent the changeset
  • Finding the changeset
  • Issuing the deploy command

You are likely to face such challenges as missing changeset components, target org missing the necessary config and permissions to accept changesets, the risk of people overwriting the work if the sandbox from which you are working is stale since the code is live, and delays as changesets propagate to target orgs.

You can use a Salesforce deployment & bot tool alongside Salesforce GitHub to make deployment much easier. Such a tool would, on issuing the deploy command, check the GitHub repository of the project, switch to the specified branch, run the deployment script on the repository and provide the branch the deployment target, and notify you of success or failure of the deployment based on the exit code of the script.

Procedure to clone a project

  • Login to GitHub (
  • Locate your project
  • Click on “Zip” and download the .zip folder to clone the project
  • Extract files from the zipped folder onto your computer or use the “git clone” command
  • Using the command window, navigate to the saved folder on your computer
  • Enter the “git submodule init” command
  • To add a branch onto your current branch, use the “git submodule update” command.
  • View the projects saved as sub-modules by visiting c:\NameOfSavedProject\.gitmodules

Once you are done with the cloning, the c:\NameOfSavedProject directory will have a directory with the name src and files like and pom.xml.

Benefits of GitHub

  • Knowing that you can revert back to the main branch at any time gives you peace of mind. The Eclipse ide and Apache Ant/ migration tools allow you to download the original version to Salesforce and to deploy it.
  • If you are in an organization that has several admins and developers and you are in charge of the project, you will have an overview of what everybody is doing, including the other admins. The “Show diff stats” feature allows you to keep track of what has happened since the last snapshot interval.
  • You can do object level history tracking. As an example, if you want to know which change has been made on a particular report, you can open the report as a GitHub file and you will see the changes that have been made chronologically.
  • Although not very common, Salesforce can have a catastrophic failure. GitHub gives you a local copy of the Salesforce Metadata, meaning you will not be adversely affected by such failure. You can use this Metadata on another CRM in such unlikely events.

Consider hiring a pro for Salesforce deployment. This not only allows you to run your business, but it also saves you money since you will not need a permanent in-house IT team for the job.

Author Bio: Bill Williams is a Salesforce deployment expert at He has been coding since he was in fifth grade and is certified. He loves publishing and guiding up-and-coming developers.