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 essentials

Originally presented at the Northeast PHP 2013 conference.

Git is hard to learn, but that's not a good excuse to ignore it. This presentation aims to teach the bare essentials for operating a git repository.

  • Login to see the comments

Git essentials

  1. 1. Git Essentials By Matthew Barlocker
  2. 2. The Barlocker ● Chief Architect at Lucid Software Inc ● Used Subversion and Git since 2006 ● Graduated with B.S. from BYU in 2008 ● Developed software for the following industries: – Network Security – Social Gaming – Financial – Productivity
  3. 3. Creating a Repo, Staging, and Committing (terminal)
  4. 4. Creating, Staging, and Committing ● Git repos can be created anywhere. ● Only the staging area will be committed. ● Every commit is identified by an md5 hash generated by git.
  5. 5. Commit Graph
  6. 6. Log, Diff, Reset and Revert (terminal)
  7. 7. Log, Diff and Revert ● Reverting in Subversion is NOT the same as reverting in Git. Reverting in Git is reversing a commit. ● `git revert` will keep the bad commit in the history. `git reset --hard` will not.
  8. 8. Tagging, Branching, and Checkout ● HEAD is the working directory. ● Everything happens on HEAD – committing, merging, rebasing, cherry-picking, etc. ● Branching is easy. Use them for everything!
  9. 9. Tagging, Branching, and Checkout
  10. 10. Tagging, Branching, and Checkout (terminal)
  11. 11. Tagging, Branching, and Checkout
  12. 12. Stash (terminal)
  13. 13. Merge vs Rebase ● Merge will create a merge commit. ● Rebase will rewrite history since the last commit in common.
  14. 14. Merge
  15. 15. Rebase
  16. 16. Merge vs Rebase ● Merge history cannot be reverted! ● Rebasing ruins sharing! ● In a fast-forward, these do the same thing.
  17. 17. Merge & Rebase (terminal)
  18. 18. Remotes ● Every repository has a full clone of every commit, tag, and branch. ● “Remotes” are other clones of the same repository. ● The repository you cloned from is always called 'origin'.
  19. 19. Remotes & Clone (terminal)
  20. 20. Fetch, Pull and Push (terminal)
  21. 21. Fun Commands to Research ● `git cherry-pick` ● `git bisect` ● `git add -i` ● `git merge-base` ● `git rebase -i`
  22. 22. Any Questions?
  23. 23. Lucid Software Inc ● Building the next generation of collaborative web applications ● VC funded, high growth, profitable ● Graduates from Harvard, MIT, Stanford ● Team has worked at Google, Amazon, Microsoft