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.
Unraveling Multimodality with Large Language Models.pdf
Dreamforce 13 developer session: Git for Force.com developers
1. Git for Force.com Developers
Managing code and Collaborating on projects
John Stevenson
Developer Evangelist
Salesforce.com
@jr0cket
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. 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
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
12. 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
13. 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 .
14. 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.
15. 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
16. 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
17. 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)
18. 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.
19.
20. 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)
21. 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
23. 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
24. Identifying yourself to Git with Force.com IDE
You will be prompted for your user information when you create
your first commit
25. Identifying yourself to Git with Force.com IDE
Force.com IDE will use ~/.gitconfig if it already exists
26. Using Git for Force.com projects
Window > Open Perspective > Git repository exploring
28. 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
30. Using Git & Force.com IDE
with an Apex project
Using the Apex Workbook as the example project
31. 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
32. 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();
45. 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
46.
47. 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
48. 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
51. 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
52. 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
53. 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
54. 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 !
You don’t need to remember all the commands I show you, there is a quickstart guide to give you a reference to all the common commands you will use first. There is a more detailed “Cheat sheet” available at Dreamforce
Insert diagram
To keep this nice and simple I am going to create some text files and capture different versions of those files in Git. This shows what each of these commands does, so even if only use Git via Force.com IDE you know what those commands are doing. This helps you make use of Force.com IDE more efficiently.
Diff’ing
Diff’ing
Diff’ing
Diff’ing
Diff’ing
Diff’ing
Diff’ing
TODO – fix diagram – git diff next to local repo shold not have the –cached option, it should be on the git diff against staging
Diff’ing
Diff’ing
Add screenshots of using Eclipse and …
Add screenshots of using Eclipse and …
Add screenshots of using Eclipse and …
Add screenshots of using Eclipse and …
Add screenshots of using Eclipse and …
A bare repository is one without a working directory. Files cannot be added, as the repository can only receive changes via a push to it.
Add screenshots of using Eclipse and …
Add screenshots of using Eclipse and …
Add screenshots of using Eclipse and …
Taking tips from the Blog Sandeep wrote on using Git.
Taking tips from the Blog Sandeep wrote on using Git.