SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Getting with GIT 
December 13, 2014 
Moyinoluwa ADEYEMI
Outline 
Outline 
• Introduction (i) 
• Getting Started (i) 
• Introduction (ii) 
• Getting Started (ii) 
• Introduction (iii)
Introduction (i)
Introduction (i) 
Let’s play a little game called Imagine. 
Shall we?
Introduction (i) 
What is Version Control?
Introduction (i) 
Why use a Version Control System? 
• Collaboration 
• Storing versions properly 
• Restoring previous versions 
• Understanding what happened 
• Backup
Introduction (i) 
Types of Version Control Systems 
• Centralized Version Control System (CVCS) 
e.g. Subversion 
• Distributed Version Control System (DVCS) 
e.g. Git
Introduction (i) 
Why Git? 
• Save time 
• Work offline 
• Undo mistakes 
• Make useful commits 
• Work in your own way 
• Don’t mix things up
Getting Started (i)
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”
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”.
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
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
Introduction (ii)
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
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
Introduction (ii) 
Repository registers 
• Untracked files 
• Tracked files 
• Working copy 
• Staging area
Introduction (ii)
Introduction (ii) 
Some Git commands 
• Init - $ git init 
• Add - $ git add -<file> 
• Commit - $ git commit -m “Commit message” 
• Status - $ git status 
• Log - $ git log
Getting Started (ii)
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.
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
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
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.
Getting Started (ii) 
You are the real MVP! 
You just learnt the basics of version control with GIT. 
(y)
Introduction (iii)
Introduction(iii) 
• Branches 
• Working with branches 
• Saving changes temporarily 
• Checking out a local branch 
• Merging changes
Introduction(iii) 
Branches are the perfect tool to help you avoid mixing up different lines of 
development.
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.
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
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.
Introduction(iii) 
When to stash 
• Before checking out a different branch 
• Before pulling remote changes 
• Before merging a branch
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
Introduction(iii) 
• Merge conflicts 
$ git status 
On branch <branchname> 
You have unmerged paths.
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.
The ebook at http://www.git-tower.com/learn/ebook/command-line aided the 
preparation of this slide.
Thank You 
Moyinoluwa Adeyemi 
Obafemi Awolowo University 
Twitter - @moyheen 
LinkedIn - ng.linkedin.com/in/moyheen/ 
Gmail - moyinoluwaa@gmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Git ritesh venture_pact
Git ritesh venture_pactGit ritesh venture_pact
Git ritesh venture_pact
 
GitHub Basics - Derek Bable
GitHub Basics - Derek BableGitHub Basics - Derek Bable
GitHub Basics - Derek Bable
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
 
Git tutorial
Git tutorial Git tutorial
Git tutorial
 
GIT | Distributed Version Control System
GIT | Distributed Version Control SystemGIT | Distributed Version Control System
GIT | Distributed Version Control System
 
Introduction to Git (part 1)
Introduction to Git (part 1)Introduction to Git (part 1)
Introduction to Git (part 1)
 
Brief tutorial on Git
Brief tutorial on GitBrief tutorial on Git
Brief tutorial on Git
 
Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015
 
Git, GitHub and Open Source
Git, GitHub and Open SourceGit, GitHub and Open Source
Git, GitHub and Open Source
 
Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
 
Git & Github @ ROSEdu CDL
Git & Github @ ROSEdu CDLGit & Github @ ROSEdu CDL
Git & Github @ ROSEdu CDL
 
Github Case Study By Amil Ali
Github Case Study By Amil AliGithub Case Study By Amil Ali
Github Case Study By Amil Ali
 
Introduction to GitHub
Introduction to GitHubIntroduction to GitHub
Introduction to GitHub
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Git basics
Git basicsGit basics
Git basics
 

Ähnlich wie Getting with GIT

Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
Robert Lee-Cann
 
Gitting the Most From Git
Gitting the Most From GitGitting the Most From Git
Gitting the Most From Git
Chris Miller
 

Ähnlich wie Getting with GIT (20)

The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubThe Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
 
Git training (basic)
Git training (basic)Git training (basic)
Git training (basic)
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
 
11 git version control
11 git version control11 git version control
11 git version control
 
簡單介紹git
簡單介紹git簡單介紹git
簡單介紹git
 
Git session Dropsolid.com
Git session Dropsolid.comGit session Dropsolid.com
Git session Dropsolid.com
 
Git is a distributed version control system .
Git is a distributed version control system .Git is a distributed version control system .
Git is a distributed version control system .
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
 
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
 
GIT-FirstPart.ppt
GIT-FirstPart.pptGIT-FirstPart.ppt
GIT-FirstPart.ppt
 
Demo
DemoDemo
Demo
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
 
Gitting the Most From Git
Gitting the Most From GitGitting the Most From Git
Gitting the Most From Git
 
Learning git
Learning gitLearning git
Learning git
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
 
Introduction git
Introduction gitIntroduction git
Introduction git
 
Techoalien git
Techoalien gitTechoalien git
Techoalien git
 
Techoalien git
Techoalien gitTechoalien git
Techoalien git
 
Techoalien git
Techoalien gitTechoalien git
Techoalien git
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Getting with GIT

  • 1. Getting with GIT December 13, 2014 Moyinoluwa ADEYEMI
  • 2. Outline Outline • Introduction (i) • Getting Started (i) • Introduction (ii) • Getting Started (ii) • Introduction (iii)
  • 4. Introduction (i) Let’s play a little game called Imagine. Shall we?
  • 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
  • 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
  • 17. Introduction (ii) Repository registers • Untracked files • Tracked files • Working copy • Staging area
  • 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
  • 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)
  • 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 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

Hinweis der Redaktion

  1. For Fedora users, you might need to install ‘epel.repo’ before installing git. Find it here -> (https://fedoraproject.org/wiki/EPEL)