A blog dedicated to Salesforce Ohana

Version Controlling in Salesforce with Git + Eclipse

I always prefer version control while doing coding. I can’t think of writing code without version controlling. But when I moved to Salesforce, the first thing that I was looking for is the version controlling to have better source code control.

I worked with many version controlling tools like CVS, SVN etc. But I personally feel Git is the best version controlling option we are having now. I am a big fan of Git. Git is much more powerful than any other version controlling tool. Here in this post, I am not going to describe the advantages of Git. But if you want, you can refer below URLs to understand how powerful Git can be:
Here in this post, I will explain how we can use Git + Eclipse for Version Controlling in Salesforce.
Step 1: Once we download and install Force.com IDE, we need to install the Git plugin. The name of the plugin is: EGIT. We can download the same from http://www.eclipse.org/egit/
Step 2: Get the salesforce code into your local worspace.
Step 3: In this step, we will configure the “Local Repository”. What we need to do is: Right Click on Project | Team | Share Project.
Step 4: We need to choose Git as an option and click on “Next”

Step 5: Here we need to click on “Create”. Select “Parent Directory” and “Name” as below and click on “Finish”. This is the step where we will mention the local repository name and the path.

Step 6: Once we click on the “Finish” button, we will see that all files in Eclipse are marked with “?” mark like below. Question marks means Git does not know what to do with files, either you can schedule them for commit or add few of them in ignore list.

Step 7: Here in this step, we will commit our changes to our newly created “Local Repository”. In order to do that, click on Project | Team | Commit. It is always good practice to provide meaningful comments against each commit so that if required, developers can easily recognise the changes.

Once we are done with the commit, we will notice that “?” mark will vanish. It means that the changes are committed to the local repository.
Step 8: Till now we have committed our changes to our local repository. But now it’s the final and most important part where we will move our code from local repository to actual remote server. For that we need to create a remote repository in Git. Please search in Google for “How to create remote repository in Git?”. Once we are done, we need to configure the same in eclipse. For that click on Remote | Create Remote.

Step 9: A new pop-up window will come up. First select the option “Push” and give name of remote repository. “Push” means we are going to save changes on remote repository and “Fetch” means we are going to fetch code from remote repository.

Step 10:  Clicking on the “Ok” button, a new pop-up window will open. Here click on the Change button. In the new pop-up window, we have to provide Git URL, username and password like below and click on finish.

Step 11: Now here click on “Advanced” button. In the new pop-up window, select the options as per the below screenshot and click on finish.

Step 12: Finally click on “Save”. Now our remote repository is also configured. Let’s check whether it is working now.
Step 13: Here in this step, we will push the code from our “Local Repository” to “Remote Repository”. Do as displayed below:

Step 14: Once the push is done, we will see all our code is moved from “Local Repository” to “Remote Repository”. Here is the code in Github. 

In the same way we can configure “fetch” to get the code from remote repository.
I hope this article will help many developers. Please feel free to provide your feedback.


No comments:

Post a Comment

Follow Me

Enter your email address:

Delivered by FeedBurner

Popular Posts


Salesforce (95) Apex (42) admin (27) ADM (20) visualforce (20) dev 501 (19) integration (18) learn salesforce (17) 501 (16) SOAP (13) tutorial (11) Certification. (9) Trigger (7) lightning (7) test class (7) unit testing (7) design pattern (6) report (6) security (6) trailhead (6) Advanced Admin (5) New Features (5) SOQL (5) css (5) dashboard (5) debug (5) formula (5) javascript (5) mobile (5) salesforce release (5) service cloud (5) solution management (5) use case (5) JSON (4) Lightning Experience (4) WebSphere (4) best practice (4) cast iron (4) developer (4) github (4) html (4) polymer (4) profiles (4) responsive (4) tdd (4) ui (4) Live Chat (3) Performance (3) Products (3) Sales Cloud (3) Study Notes. (3) Summer15 (3) Tips (3) component (3) deployment (3) dynamic apex (3) event (3) license (3) map (3) mapbox (3) singleton (3) version controlling (3) Advanced Apex (2) Bulkify (2) Certification (2) Data Architecture and Management Certification (2) Distributed Version Controlling (2) Eclipse (2) Force.com IDE (2) Governor Limit (2) IBM (2) Lightning Design System (2) Live Agent (2) Price Book (2) REST (2) SOSL (2) Spring 15 (2) Summer17 (2) ant (2) automation tool (2) basic (2) chatter (2) coding (2) communication (2) console (2) controller (2) documentation (2) flow (2) git (2) jquery (2) logging (2) permission (2) process builder (2) release (2) salesforce1 (2) strategy (2) xml (2) Agent Productivity (1) Architect (1) Asynchronous callout (1) Browser (1) Bulk data load (1) CTA (1) Calendar (1) Canon (1) Case Management (1) Classic (1) Contact Center (1) Continuation (1) Continuous Integration (1) Cookie (1) Custom Metadata (1) Custom Object (1) Decorator Design Pattern (1) Diwali (1) Email (1) Groups (1) Guide (1) Ideas (1) Implicit Sharing (1) Improvement (1) JourneyToCTA (1) KPIs (1) LastModifiedDate (1) Metadata (1) Metrics (1) Omni-Channel (1) Opportunity (1) Photo (1) Platform Developer I (1) Product Schedule (1) Profile (1) Public Site (1) Query Plan (1) QuickReference (1) Reports (1) Role (1) Salesforce Optimizer (1) Sharing (1) Site (1) Skills (1) Snap-ins (1) Spring 17 (1) Summer14 (1) Summer16 (1) SystemModStamp (1) Users (1) Webservice (1) Winter'15 (1) Winter'17 (1) access (1) agile (1) app (1) approval process (1) aura (1) awesome (1) backup (1) bitbucket (1) book (1) campaign (1) change set (1) code (1) code coverage (1) configuration (1) csv (1) custom button (1) custom settings (1) customization (1) data loader (1) database (1) delegate Admin (1) describe (1) dom (1) dreamforce (1) duplicate (1) dynamic (1) equals (1) error (1) field-level security (1) folder (1) ftp (1) generic (1) gift (1) global describe (1) hashcode (1) import wizard (1) jenkins (1) keynote (1) long running requests (1) monitoring (1) mysql (1) object (1) page layout (1) personal (1) power of one (1) record type (1) relationship (1) request (1) review (1) sub-tab (1) tab (1) username (1) visual workflow (1) workflow (1)

My Trailhead

Total Subscribers

Total Pageviews