Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Git for Force.com Developers
Managing code and Collaborating on projects
John Stevenson
Developer Evangelist
Salesforce.co...
Safe harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
This presentation may contai...
What is this talk about
Understanding the value of Git
Taking your first steps Git
Using Git for Force.com projects
Collab...
The value of Git
Understanding the value of Git
Manage your code changes over time
- understanding which version of your code is deployed
-...
Getting Started with Git
Taking your first steps Git
Install Git

http://git-scm.com/

Identify
yourself to git

git config --global user.name “”

...
Salesforce Git Cheat Sheet available in the
Developer Library
The common Git commands
Creating a Git repository locally
Create a place to manage your changes
- stored in a folder called .git

git init
Removin...
Adding files
You can tell git which file(s) you want to make
part of the next commit (version)
- either a specific file na...
Understanding what has changed
Git Status gives an overview of local file changes
- you will use this command very often

...
Creating a commit (version)
Create a commit with all the files in staging
- providing a message to describe this commit

g...
Tracing your commits with Git log
Quickly review your change history
- this is where good commit messages speed things up
...
Create an alias for git log
Save yourself some typing by creating aliases
- these are saved in the file ~/.gitconfig

git ...
Seeing what code has changed
Compare your working files with existing commits
- helps you understand what changed, what sh...
Staging and committing
Staging allows you to group changes across multiple files easily
- easier to un-stage files than re...
Share your changes with others
We work in teams, so we can share our commits
- via Github, an internal Git server or direc...
Using Git with Force.com IDE
Getting Force.com IDE
Download Eclipse version 4.2 or 4.3
- get the Java Developer edition

Add the Force.com IDE plugin
E...
Identifying yourself to Git with Force.com IDE
You will be prompted for your user information when you create
your first c...
Identifying yourself to Git with Force.com IDE
Force.com IDE will use ~/.gitconfig if it already exists
Using Git for Force.com projects
Window > Open Perspective > Git repository exploring
Creating a repository with Force.com IDE
Creating a repository with Force.com IDE
Provide the location and name for your local repository

Don’t select a bare repo...
Creating a repository with Force.com IDE
Using Git & Force.com IDE
with an Apex project
Using the Apex Workbook as the example project
Creating a Developer Org
Create a new developer Org
- via developer.force.com
Install a package to create the custom objec...
Load data into your Developer Org
Open the Developer Console
1) click Debug > Open Execute Anonymous Window
2) the Enter A...
Creating a new project in Force.com IDE
Change to the Force.com Perspective
See the newly created project
Create your first Apex class
Code your Apex class
New Class files marked as untracked
New files and their parent folders are marked with ?
Adding the HelloWorld class to Git
Switch to Git Repository Exploring perspective
Right-click the file name and select Add...
Comparing additional changes with staging
Committing your new code locally
Enter a useful commit message and press commit
Syncronize your changes with your Org
View the local commit history
View details of a commit
Github
Social Coding
Collaborating with Github
Collaborate as a team
Work on Open Source projects
Get contributions from anyone in the world
In...
Creating, Forking & Cloning
Creating a repository & Forking a repository
- via the Github website
Cloning a repository (ge...
Sharing changes back to Github
Git Push sends all commits that are only in your local
repository to Github
Specify with re...
Cloning a repository in Force.com IDE
Tips when using
Github & Force.com IDE
Be wary of what you name your project
Project & Git repository names should match
A repository on Github has a web address...
Commit changes before sync’ing
Commit changes before syncing or merging with your org
- ensure you don’t loose local chang...
Drive all changes locally
Avoid making changes directly on the Org
- or sync changes to locally as soon as you make them
C...
Where to go next
try.git.com – free online interactive training
Git Visual Cheetsheet – interactive command reference
Sale...
Thank you
John Stevenson
Developer Evangelist
@jr0cket

git-scm.com
try.github.com
developer.force.com
blog.jr0cket.co.uk
Dreamforce 13 developer session: Git for Force.com developers
Dreamforce 13 developer session: Git for Force.com developers
Dreamforce 13 developer session: Git for Force.com developers
Dreamforce 13 developer session: Git for Force.com developers
Dreamforce 13 developer session: Git for Force.com developers
Dreamforce 13 developer session: Git for Force.com developers
Upcoming SlideShare
Loading in …5
×

Dreamforce 13 developer session: Git for Force.com developers

3,327 views

Published on

Git is a powerful version control tool and this presentation shows how Force.com developers can make use of Git in their projects.

Including tips and tricks, this presentation covers the core commands you need to know to use Git effectively. We also cover using Git from the Force.com IDE.

Published in: Technology
  • Be the first to comment

Dreamforce 13 developer session: Git for Force.com developers

  1. 1. Git for Force.com Developers Managing code and Collaborating on projects John Stevenson Developer Evangelist Salesforce.com @jr0cket
  2. 2. Safe harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  3. 3. What is this talk about Understanding the value of Git Taking your first steps Git Using Git for Force.com projects Collaborating with Git & Github
  4. 4. The value of Git
  5. 5. Understanding the value of Git Manage your code changes over time - understanding which version of your code is deployed - rollback & compare to earlier versions Experiment with code using branching - branches are easily thrown away or merged if they are valuable Collaborate easily - share code commits using distributed nature of Git
  6. 6. Getting Started with Git
  7. 7. Taking your first steps Git Install Git http://git-scm.com/ Identify yourself to git git config --global user.name “” Create your first repository git config --global user.email “” git init
  8. 8. Salesforce Git Cheat Sheet available in the Developer Library
  9. 9. The common Git commands
  10. 10. Creating a Git repository locally Create a place to manage your changes - stored in a folder called .git git init Removing the .git folder from your project removes any version control and you will loose your change history
  11. 11. Adding files You can tell git which file(s) you want to make part of the next commit (version) - either a specific file name or pattern, or using . every change is added git add filename git add .
  12. 12. Understanding what has changed Git Status gives an overview of local file changes - you will use this command very often git status Git status helps you keep track of your changes and which ones to make part of the next commit.
  13. 13. Creating a commit (version) Create a commit with all the files in staging - providing a message to describe this commit git commit -m “useful commit message” Commit messages help the team quickly review changes and versions
  14. 14. Tracing your commits with Git log Quickly review your change history - this is where good commit messages speed things up git log git log --oneline --graph --decorate The default output of Git Log is basic, if you use the command line then create an alias with your preferred options
  15. 15. Create an alias for git log Save yourself some typing by creating aliases - these are saved in the file ~/.gitconfig git config alias.lg “log –oneline --graph –decorate” You can also edit the ~/.gitconf file directly (if you are careful)
  16. 16. Seeing what code has changed Compare your working files with existing commits - helps you understand what changed, what should be committed next git diff git diff --cached The --cached option compares the working directory with the staged files rather than committed changes.
  17. 17. Staging and committing Staging allows you to group changes across multiple files easily - easier to un-stage files than remove from a commit - gives another step to manage and compare changes A Staged file is over-written when you “git add” the same file - staging does not create a version - commit when you have a meaningful (set of) change(s)
  18. 18. Share your changes with others We work in teams, so we can share our commits - via Github, an internal Git server or directly between developers git push repository branch git archive my-project.zip An archive file (.tar or .zip) will contain the entire history of your code by default
  19. 19. Using Git with Force.com IDE
  20. 20. Getting Force.com IDE Download Eclipse version 4.2 or 4.3 - get the Java Developer edition Add the Force.com IDE plugin Eclipse uses a plugin called EGit to work with local and remote repositories, this is part of the Java Developer version
  21. 21. Identifying yourself to Git with Force.com IDE You will be prompted for your user information when you create your first commit
  22. 22. Identifying yourself to Git with Force.com IDE Force.com IDE will use ~/.gitconfig if it already exists
  23. 23. Using Git for Force.com projects Window > Open Perspective > Git repository exploring
  24. 24. Creating a repository with Force.com IDE
  25. 25. Creating a repository with Force.com IDE Provide the location and name for your local repository Don’t select a bare repository as you will not be able to use a working directory
  26. 26. Creating a repository with Force.com IDE
  27. 27. Using Git & Force.com IDE with an Apex project Using the Apex Workbook as the example project
  28. 28. Creating a Developer Org Create a new developer Org - via developer.force.com Install a package to create the custom objects our Apex code is going to work with - http://bit.ly/ApexWorkbookPackage1_4
  29. 29. Load data into your Developer Org Open the Developer Console 1) click Debug > Open Execute Anonymous Window 2) the Enter Apex Code window is displayed 3) Enter the following apex code and execute ApexWorkbook.loadData();
  30. 30. Creating a new project in Force.com IDE
  31. 31. Change to the Force.com Perspective See the newly created project
  32. 32. Create your first Apex class
  33. 33. Code your Apex class
  34. 34. New Class files marked as untracked New files and their parent folders are marked with ?
  35. 35. Adding the HelloWorld class to Git Switch to Git Repository Exploring perspective Right-click the file name and select Add to Git index
  36. 36. Comparing additional changes with staging
  37. 37. Committing your new code locally Enter a useful commit message and press commit
  38. 38. Syncronize your changes with your Org
  39. 39. View the local commit history
  40. 40. View details of a commit
  41. 41. Github Social Coding
  42. 42. Collaborating with Github Collaborate as a team Work on Open Source projects Get contributions from anyone in the world Include code review into your change management
  43. 43. Creating, Forking & Cloning Creating a repository & Forking a repository - via the Github website Cloning a repository (get a local copy) git clone alias repository-address
  44. 44. Sharing changes back to Github Git Push sends all commits that are only in your local repository to Github Specify with repository (alias name) and branch you want to share git push alias branch
  45. 45. Cloning a repository in Force.com IDE
  46. 46. Tips when using Github & Force.com IDE
  47. 47. Be wary of what you name your project Project & Git repository names should match A repository on Github has a web address (URL) - avoid using spaces and special characters Suggested approach - create your repository on Github first - clone your github repository to your laptop - create a project in Force.com
  48. 48. Commit changes before sync’ing Commit changes before syncing or merging with your org - ensure you don’t loose local changes - commit before using “Save to Server” or “Synchronize with Server” Create a branch if you are not sure you want to keep your code changes - or use “git stash” if you have many unrelated changes
  49. 49. Drive all changes locally Avoid making changes directly on the Org - or sync changes to locally as soon as you make them Changes on the server are too easy to forget - can make merging changes more complicated - more likelihood of merge conflicts, meaning more work for the team
  50. 50. Where to go next try.git.com – free online interactive training Git Visual Cheetsheet – interactive command reference Salesforce Git Cheatsheet - available at Dreamforce in the Developer Library Practice !
  51. 51. Thank you John Stevenson Developer Evangelist @jr0cket git-scm.com try.github.com developer.force.com blog.jr0cket.co.uk

×