Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Getting with GIT

Getting with GIT

This presentation gives the reader an introduction to GIT as a version control system. It starts from the fundamentals of version control and leads the reader up to more advanced terms and concepts used in GIT.


Moyinoluwa Adeyemi

December 13, 2014


  1. Getting with GIT December 13, 2014 Moyinoluwa ADEYEMI

  2. Outline Outline • Introduction (i) • Getting Started (i) •

    Introduction (ii) • Getting Started (ii) • Introduction (iii)
  3. Introduction (i)

  4. Introduction (i) Let’s play a little game called Imagine. Shall

  5. Introduction (i) What is Version Control?

  6. Introduction (i) Why use a Version Control System? • Collaboration

    • Storing versions properly • Restoring previous versions • Understanding what happened • Backup
  7. Introduction (i) Types of Version Control Systems • Centralized Version

    Control System (CVCS) e.g. Subversion • Distributed Version Control System (DVCS) e.g. Git
  8. Introduction (i) Why Git? • Save time • Work offline

    • Undo mistakes • Make useful commits • Work in your own way • Don’t mix things up
  9. Getting Started (i)

  10. Getting Started (i) How to install Git Installing Git on

    Windows • Download the latest version from http://msysgit.github.io/ • When installing, choose the default options in each screen • Begin work by starting “Git Bash”
  11. Getting Started (i) How to install Git Installing Git on

    Mac OS X • Download an installer package from https://code.google.com/p/git-osx-installer/downloa ds/list?can=3/ • Begin work by starting “Terminal.app”.
  12. Getting Started (i) How to install Git Installing Git on

    Linux • On Fedora use: sudo yum install git • On a Debian-based distribution like Ubuntu, use apt to update your local package index. You can then download and install the program: sudo apt-get update sudo apt-get install git
  13. Getting Started (i) Configuring Git • Set your name $

    git config --global user.name “Jane Doe” • Set your email address $ git config --global user.email “jane@doe.org” • Enable coloring? $ git config --global color.ui auto
  14. Introduction (ii)

  15. Introduction (ii) • Repository A place where the history of

    your work is stored. It lives in a .git folder in the root directory of your project. • Types Local Repository – Resides on your local computer Remote Repository – Located on a remote server on the internet
  16. Introduction (ii) Repository registers • Clone Creates a “copy” of

    a repository • Fork Clone a remote repository. Create a copy that you can modify independently • Star Keep track of interesting projects
  17. Introduction (ii) Repository registers • Untracked files • Tracked files

    • Working copy • Staging area
  18. Introduction (ii)

  19. Introduction (ii) Some Git commands • Init - $ git

    init • Add - $ git add -<file> • Commit - $ git commit -m “Commit message” • Status - $ git status • Log - $ git log
  20. Getting Started (ii)

  21. Getting Started (ii) Starting with an unversioned project • Change

    into the project’s root folder on the command line. $ cd path/to/project • Use the “git init” command to version the project. $ git init Notice the .git subdirectory? To help you understand what’s going on, check the status of your repo ($ git status) after typing any command.
  22. Getting Started (ii) Starting with an unversioned project • Add

    a file to your project folder. Check the status. • Use the “git add” command to track this file $ git add gdaysdemo.html • Use “git commit” to commit the file $ git commit –m “Initial commit” • Use “git log” to check the changes that happened in the commit $ git log –p
  23. Getting Started (ii) Pushing an existing project to GitHub •

    Login/Signup to GitHub to create a repo. • Add remote origin in your local project folder (the same as the last one used) $ git remote add origin https://github.com/<username>/<projectname>.git • Push to GitHub $ git push –u origin master
  24. Getting Started (ii) Starting with an existing project • Navigate

    to https://github.com/moyheen • Clone the gdaysnigeria2014 repo. Make sure that you are in the folder where you want this project to be downloaded to. • Create a file (please name it with your github username), stage and commit it. • Use “git push origin” to push the file to the remote repo and use “git log” to monitor your commits.
  25. Getting Started (ii) You are the real MVP! You just

    learnt the basics of version control with GIT. (y)
  26. Introduction (iii)

  27. Introduction(iii) • Branches • Working with branches • Saving changes

    temporarily • Checking out a local branch • Merging changes
  28. Introduction(iii) Branches are the perfect tool to help you avoid

    mixing up different lines of development.
  29. Introduction(iii) Branches gives you the ability to work on different

    things in parallel, leaving you with at least one context for the “main” or “production” state, and another context for each feature.
  30. Introduction(iii) Working with branches • The currently active, or “checked

    out”, or “HEAD” branch • Branch master • Creating a new branch - $ git branch <branchname> • $ git branch -v
  31. Introduction(iii) Saving changes temporarily • The Stash • Stashing a

    local change - $ git stash • Get an overview of current stashes - $ git stash list • Restore a saved stash. “git stash pop” will apply the newest stash and clear it from the stash clipboard. “git stash apply <stashname>” will apply the specified stash but it will remain saved.
  32. Introduction(iii) When to stash • Before checking out a different

    branch • Before pulling remote changes • Before merging a branch
  33. Introduction(iii) • Checking out a local branch $ git checkout

    <branchname> • Merging changes $ git merge <branchname> First checkout the branch that should receive the changes Call “git merge” with the name of the branch that contains the desired changes
  34. Introduction(iii) • Merge conflicts $ git status On branch <branchname>

    You have unmerged paths.
  35. Introduction(iii) After resolving all conflicts, a merge conflict needs to

    be concluded by a “git add” (if merge is done by hand and not with a merge tool) and a regular commit. Undoing a Merge with “git merge --abort” Use “git reset --hard” to roll back to the commit before the merge happened.
  36. The ebook at http://www.git-tower.com/learn/ebook/command-line aided the preparation of this slide.

    You can also visit the page to learn more about git flow.
  37. Thank You Moyinoluwa Adeyemi Obafemi Awolowo University moyinoluwaa@gmail.com