SlideShare a Scribd company logo
WHAT THE GIT?!
GIT BASICS
NO GIT!
(WHY USE VERSION CONTROL SOFTWARE)
• Version control software(such as GIT, Mercurial, Perforce, SVN etc.) allows to
have “versions” of a project, which show the changes that were made to the code
over time, and allowing to backtrack if necessary and undo those changes.
• Ease of collaborating with other developers.
GIT THE HELL OUT
(WHY GIT IS *BEST* VERSION CONTROL SOFTWARE AVAILABLE)
• Performance:
• Git tracks state, history and integrity of the source tree.
• Git works with the whole repo instead of individual files.
• Git is distributed which allows offline work.
• Ok, No more Jokes. Lets Git started(ok maybe one more)
CHECKOUT A REPOSITORY
• create a working copy of a local repository by running the command
git clone /path/to/repository
• when using a remote server, your command will be
git clone username@host:/path/to/repository
WORKFLOW
• your local repository consists of three "trees" maintained by git. the first one is
your Working Directory which holds the actual files. the second one is the Index
which acts as a staging area and finally the HEAD which points to the last
commit you've made
Working git add Index/stage git commit HEAD
ADD & COMMIT
• You can propose changes (add it to the Index) using
git add <filename>
git add *
• This is the first step in the basic git workflow. To actually commit these changes
use
git commit -m "Commit message”
• Now the file is committed to the HEAD, but not in your remote repository yet.
PUSHING CHANGES
• Your changes are now in the HEAD of your local working copy. To send those changes to your
remote repository, execute
git push origin master
• Change master to whatever branch you want to push your changes to.
• If you have not cloned an existing repository and want to connect your repository to a remote
server, you need to add it with
git remote add origin <server>
• Now you are able to push your changes to the selected remote server
BRANCHING
• Branches are used to develop features isolated from each other. The master branch is the "default"
branch when you create a repository. Use other branches for development and merge them back to
the master branch upon completion.
• create a new branch named "feature_x" and switch to it using
git checkout -b feature_x
• switch back to master
git checkout master
• and delete the branch again
git branch -d feature_x
• a branch is not available to others unless you push the branch to your remote repository
git push origin <branch>.
UPDATE & MERGE
• to update your local repository to the newest commit, execute
git pull
• in your working directory to fetch and merge remote changes.
to merge another branch into your active branch (e.g. master), use
git merge <branch>
• in both cases git tries to auto-merge changes. Unfortunately, this is not always possible and
results in conflicts. You are responsible to merge those conflicts manually by editing the files
shown by git. After changing, you need to mark them as merged with
git add <filename>
• before merging changes, you can also preview them by using
git diff <source_branch> <target_branch>
LOG
• in its simplest form, you can study repository history using.. git log
You can add a lot of parameters to make the log look like what you want. To see only the commits of a certain
author:
git log --author=bob
• To see a very compressed log where each commit is one line:
git log --pretty=oneline
• Or maybe you want to see an ASCII art tree of all the branches, decorated with the names of tags and branches:
git log --graph --oneline --decorate –all
• See only which files have changed:
git log --name-status
• These are just a few of the possible parameters you can use. For more, see 'git log –help’
REPLACE LOCAL CHANGES
• In case you did something wrong, which for sure never happens ;), you can
replace local changes using the command
git checkout -- <filename>
• this replaces the changes in your working tree with the last content in HEAD.
Changes already added to the index, as well as new files, will be kept.
• If you instead want to drop all your local changes and commits, fetch the latest
history from the server and point your local master branch at it like this
git fetch origin
git reset --hard origin/master
USEFUL HINTS
• built-in git GUI
gitk
• use colorful git output
git config color.ui true
• show log on just one line per commit
git config format.pretty oneline
• use interactive adding
git add -i /git add –p
• Status of the local tree
git status
• References:
• http://rogerdudler.github.io/git-guide/
• http://www.makeuseof.com/tag/git-version-control-youre-developer/
• Interesting links:
• http://sixrevisions.com/git/why-you-should-use-git/
• https://stevebennett.me/2012/02/24/10-things-i-hate-about-git/
• https://www.git-tower.com/blog/8-reasons-for-switching-to-git
• https://www.youtube.com/watch?v=4XpnKHJAok8
Ad

More Related Content

What's hot (20)

Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
Panagiotis Papadopoulos
 
Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
Anurag Upadhaya
 
Github basics
Github basicsGithub basics
Github basics
Radoslav Georgiev
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
Lukas Fittl
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
Nicolás Tourné
 
Introduction to git & GitHub
Introduction to git & GitHubIntroduction to git & GitHub
Introduction to git & GitHub
Poornachandrakashi
 
Git basics
Git basicsGit basics
Git basics
GHARSALLAH Mohamed
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
Roland Emmanuel Salunga
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
GoogleDevelopersStud1
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
Nilay Binjola
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
Tilton2
 
Git basics to advance with diagrams
Git basics to advance with diagramsGit basics to advance with diagrams
Git basics to advance with diagrams
Dilum Navanjana
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
Yan Vugenfirer
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
Venkat Malladi
 
Git Started With Git
Git Started With GitGit Started With Git
Git Started With Git
Nick Quaranto
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
Somkiat Puisungnoen
 
Git in 10 minutes
Git in 10 minutesGit in 10 minutes
Git in 10 minutes
Safique Ahmed Faruque
 
Grokking opensource with github
Grokking opensource with githubGrokking opensource with github
Grokking opensource with github
GoogleDeveloperStude4
 
Version Control History and Git Basics
Version Control History and Git BasicsVersion Control History and Git Basics
Version Control History and Git Basics
Sreedath N S
 
Git training v10
Git training v10Git training v10
Git training v10
Skander Hamza
 

Similar to Git 101 (20)

Git and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slideGit and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slide
RaghavendraVattikuti1
 
An introduction to Git
An introduction to GitAn introduction to Git
An introduction to Git
Muhil Vannan
 
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
 
Git walkthrough
Git walkthroughGit walkthrough
Git walkthrough
Bimal Jain
 
Git for developers
Git for developersGit for developers
Git for developers
Hacen Dadda
 
Git tips and tricks
Git   tips and tricksGit   tips and tricks
Git tips and tricks
Chris Ballance
 
GIT.pptx
GIT.pptxGIT.pptx
GIT.pptx
Soumen Debgupta
 
18 Git #burningkeyboards
18 Git #burningkeyboards18 Git #burningkeyboards
18 Git #burningkeyboards
Denis Ristic
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
Nguyen Van Hung
 
Git hub
Git hubGit hub
Git hub
Nitin Goel
 
Mastering GIT
Mastering GITMastering GIT
Mastering GIT
Hasnaeen Rahman
 
Git basic commands
Git basic commandsGit basic commands
Git basic commands
Adarsh Konchady
 
Introduction to Git (part 1)
Introduction to Git (part 1)Introduction to Git (part 1)
Introduction to Git (part 1)
Salvatore Cordiano
 
Demystifying Git
Demystifying GitDemystifying Git
Demystifying Git
Pablo Quiroga
 
Demystifying Git
Demystifying GitDemystifying Git
Demystifying Git
Pablo Quiroga
 
Learn Git Basics
Learn Git BasicsLearn Git Basics
Learn Git Basics
Prakash Dantuluri
 
Introduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptxIntroduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptx
Abdul Salam
 
Gitlikeapro 2019
Gitlikeapro 2019Gitlikeapro 2019
Gitlikeapro 2019
Jesús Miguel Benito Calzada
 
git.ppt.pdf
git.ppt.pdfgit.ppt.pdf
git.ppt.pdf
Roniel Lopez Alvarez
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
Pranesh Vittal
 
Ad

Recently uploaded (20)

tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
"Rebranding for Growth", Anna Velykoivanenko
"Rebranding for Growth", Anna Velykoivanenko"Rebranding for Growth", Anna Velykoivanenko
"Rebranding for Growth", Anna Velykoivanenko
Fwdays
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.
gregtap1
 
Hands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordDataHands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordData
Lynda Kane
 
Automation Dreamin' 2022: Sharing Some Gratitude with Your Users
Automation Dreamin' 2022: Sharing Some Gratitude with Your UsersAutomation Dreamin' 2022: Sharing Some Gratitude with Your Users
Automation Dreamin' 2022: Sharing Some Gratitude with Your Users
Lynda Kane
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5..."Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
Fwdays
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Learn the Basics of Agile Development: Your Step-by-Step Guide
Learn the Basics of Agile Development: Your Step-by-Step GuideLearn the Basics of Agile Development: Your Step-by-Step Guide
Learn the Basics of Agile Development: Your Step-by-Step Guide
Marcel David
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtBuckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Lynda Kane
 
Leading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael JidaelLeading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael Jidael
Michael Jidael
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
"Rebranding for Growth", Anna Velykoivanenko
"Rebranding for Growth", Anna Velykoivanenko"Rebranding for Growth", Anna Velykoivanenko
"Rebranding for Growth", Anna Velykoivanenko
Fwdays
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.
gregtap1
 
Hands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordDataHands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordData
Lynda Kane
 
Automation Dreamin' 2022: Sharing Some Gratitude with Your Users
Automation Dreamin' 2022: Sharing Some Gratitude with Your UsersAutomation Dreamin' 2022: Sharing Some Gratitude with Your Users
Automation Dreamin' 2022: Sharing Some Gratitude with Your Users
Lynda Kane
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5..."Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
Fwdays
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Learn the Basics of Agile Development: Your Step-by-Step Guide
Learn the Basics of Agile Development: Your Step-by-Step GuideLearn the Basics of Agile Development: Your Step-by-Step Guide
Learn the Basics of Agile Development: Your Step-by-Step Guide
Marcel David
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtBuckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Lynda Kane
 
Leading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael JidaelLeading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael Jidael
Michael Jidael
 
Ad

Git 101

  • 2. NO GIT! (WHY USE VERSION CONTROL SOFTWARE) • Version control software(such as GIT, Mercurial, Perforce, SVN etc.) allows to have “versions” of a project, which show the changes that were made to the code over time, and allowing to backtrack if necessary and undo those changes. • Ease of collaborating with other developers.
  • 3. GIT THE HELL OUT (WHY GIT IS *BEST* VERSION CONTROL SOFTWARE AVAILABLE) • Performance: • Git tracks state, history and integrity of the source tree. • Git works with the whole repo instead of individual files. • Git is distributed which allows offline work.
  • 4. • Ok, No more Jokes. Lets Git started(ok maybe one more)
  • 5. CHECKOUT A REPOSITORY • create a working copy of a local repository by running the command git clone /path/to/repository • when using a remote server, your command will be git clone username@host:/path/to/repository
  • 6. WORKFLOW • your local repository consists of three "trees" maintained by git. the first one is your Working Directory which holds the actual files. the second one is the Index which acts as a staging area and finally the HEAD which points to the last commit you've made Working git add Index/stage git commit HEAD
  • 7. ADD & COMMIT • You can propose changes (add it to the Index) using git add <filename> git add * • This is the first step in the basic git workflow. To actually commit these changes use git commit -m "Commit message” • Now the file is committed to the HEAD, but not in your remote repository yet.
  • 8. PUSHING CHANGES • Your changes are now in the HEAD of your local working copy. To send those changes to your remote repository, execute git push origin master • Change master to whatever branch you want to push your changes to. • If you have not cloned an existing repository and want to connect your repository to a remote server, you need to add it with git remote add origin <server> • Now you are able to push your changes to the selected remote server
  • 9. BRANCHING • Branches are used to develop features isolated from each other. The master branch is the "default" branch when you create a repository. Use other branches for development and merge them back to the master branch upon completion. • create a new branch named "feature_x" and switch to it using git checkout -b feature_x • switch back to master git checkout master • and delete the branch again git branch -d feature_x • a branch is not available to others unless you push the branch to your remote repository git push origin <branch>.
  • 10. UPDATE & MERGE • to update your local repository to the newest commit, execute git pull • in your working directory to fetch and merge remote changes. to merge another branch into your active branch (e.g. master), use git merge <branch> • in both cases git tries to auto-merge changes. Unfortunately, this is not always possible and results in conflicts. You are responsible to merge those conflicts manually by editing the files shown by git. After changing, you need to mark them as merged with git add <filename> • before merging changes, you can also preview them by using git diff <source_branch> <target_branch>
  • 11. LOG • in its simplest form, you can study repository history using.. git log You can add a lot of parameters to make the log look like what you want. To see only the commits of a certain author: git log --author=bob • To see a very compressed log where each commit is one line: git log --pretty=oneline • Or maybe you want to see an ASCII art tree of all the branches, decorated with the names of tags and branches: git log --graph --oneline --decorate –all • See only which files have changed: git log --name-status • These are just a few of the possible parameters you can use. For more, see 'git log –help’
  • 12. REPLACE LOCAL CHANGES • In case you did something wrong, which for sure never happens ;), you can replace local changes using the command git checkout -- <filename> • this replaces the changes in your working tree with the last content in HEAD. Changes already added to the index, as well as new files, will be kept. • If you instead want to drop all your local changes and commits, fetch the latest history from the server and point your local master branch at it like this git fetch origin git reset --hard origin/master
  • 13. USEFUL HINTS • built-in git GUI gitk • use colorful git output git config color.ui true • show log on just one line per commit git config format.pretty oneline • use interactive adding git add -i /git add –p • Status of the local tree git status
  • 14. • References: • http://rogerdudler.github.io/git-guide/ • http://www.makeuseof.com/tag/git-version-control-youre-developer/ • Interesting links: • http://sixrevisions.com/git/why-you-should-use-git/ • https://stevebennett.me/2012/02/24/10-things-i-hate-about-git/ • https://www.git-tower.com/blog/8-reasons-for-switching-to-git • https://www.youtube.com/watch?v=4XpnKHJAok8