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.
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
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/
downloads/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
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
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)
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
35. Introduction(iii)
After solving 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.
37. Thank You
Moyinoluwa Adeyemi
Obafemi Awolowo University
Twitter - @moyheen
LinkedIn - ng.linkedin.com/in/moyheen/
Gmail - moyinoluwaa@gmail.com
Notas del editor
For Fedora users, you might need to install ‘epel.repo’ before installing git. Find it here -> (https://fedoraproject.org/wiki/EPEL)