SlideShare a Scribd company logo
(origin)MasteringGIT
git init
Iván Palma | ipalma@mobaires.com
Index
● Git Basics
● Useful when collaborating
● More advanced stuff
Gitbasics
Basics and prerequisites to follow this guide:
● Try Git: https://try.github.io/
● Git The Three States: https://git-scm.com/book/en/v2/Getting-Started-Git-
Basics#The-Three-States
a. Committed (data in the repo)
b. Modified (file changed but not committed)
c. Staged (marked a modified file to go
into your next commit)
● Understanding Git Conceptually:
http://www.sbf5.com/~cduan/technical/git/
a. Repositories
b. Branching
c. Merging
d. Collaborating
e. Rebasing
USefulwhencollaborating
1. Fork
2. Pull Requests
3. Remotes
4. Merge vs Rebase
1. fork
A fork is a copy of a repository, that allows you to freely experiment without
affecting the original project.
Usual workflow:
● Fork the repository.
● Make the fix.
● Submit a pull request to the project owner.
More info: https://help.github.com/articles/fork-a-repo/
2.pullrequests
Pull requests let you tell others about changes you've pushed to a repository
on GitHub. A pull request let pull your fix from your fork into the original
repository.
It allows:
● Review proposed changes
● Discuss changes
● Merge changes
More info: https://help.github.com/articles/using-pull-requests/
3.Remotes
Remote repositories are versions of your project that are hosted on the
network. Collaborating with others involves managing these remote
repositories.
Useful commands:
● Show remotes: git remote -v
● Add remote: git remote add [shortname] [url]
● Rename remote: git remote rename [shortname] [newname]
● Remove remote: git remote rm [shortname]
More info: https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes
4.mergevsRebase
Both of these commands are designed to integrate changes from one branch into
another branch—they just do it in very different ways.
It’s easier to see what both commands do with the following example:
1. Start working on a new feature in
a dedicated branch.
2. A team member updates the master
branch with new commits.
3. To incorporate the new commits
into your feature branch, you
have two options: merging or
rebasing.
4.mergevsRebase
The Merge Option:
git checkout feature
git merge master
or
git merge master feature
This creates a new “merge commit” in
the feature branch.
Merging:
● It’s a non-destructive operation (the existing branches are not changed).
● The feature branch will have an extraneous merge commit every time you
need to incorporate upstream changes.
4.mergevsRebase
The Rebase Option:
git checkout feature
git rebase master
This moves the feature branch to
begin on the tip of the master
branch.
Rebasing:
● Cleaner project history (new commit for each commit in the original branch).
● Results in a perfectly linear project history.
4.mergevsRebase
Important things for Rebase
● The Golden Rule of Rebasing: never use it on public branches.
● Force-Pushing: git push --force. This overwrites the remote master branch
to match the rebased one from your repository.
More info:
https://www.atlassian.com/git/tutorials/merging-vs-rebasing
https://www.atlassian.com/git/articles/git-team-workflows-merge-or-rebase/
Moreadvancedstuff
1. Reset
2. Checkout
3. Revert
4. Reflog
5. Log
6. Stash
7. Other commands
8. Git Autocomplete
1. reset
On the commit-level, moves the tip of a branch to a different commit.
Example: git reset HEAD~2
1. reset
Flags: --soft, --mixed and --hard. Examples:
git reset --mixed HEAD
Unstage all changes, but leaves
them in the working directory
git reset --hard HEAD
Completely throw away all your
uncommitted changes
2.checkout
Most common usage: switch between branches: git checkout hotfix .
You can also check out arbitrary commits: git checkout HEAD~2 . However, since
there is no branch reference to the current HEAD, this puts you in a detached
HEAD state.
3.revert
Undoes a commit by creating a new commit. This is a safe way to undo changes.
Example: git revert HEAD~2
summary:Reset-Checkout-Revert
Command Scope Common use cases
git reset Commit-level Discard commits in a private branch or
throw away uncommited changes
git reset File-level Unstage a file
git checkout Commit-level Switch between branches or inspect old
snapshots
git checkout File-level Discard changes in the working directory
git revert Commit-level Undo commits in a public branch
git revert File-level (N/A)
More info: https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting
4.reflog
It records almost every change you make in your repository.
You can think of it is a chronological history of everything you’ve done in
your local repo.
Example: you can use this to revert to a state that would otherwise be lost,
like restoring some lost commits.
git reflog
5.Log
Shows the commit logs.
There are some useful flags that let you format or filter the output:
● --oneline
● --decorate (display all of the references)
● --graph
● --max-count=
● --author=<pattern>
● --grep=<pattern>
More info: http://git-scm.com/docs/git-log
6.stash
Let you pause what you’re currently working on and come back to it later.
Useful stash commands:
● git stash / git stash save <message>
● git stash apply / git stash pop
● git stash list
● git stash drop <id>
More info:
http://gitready.com/beginner/2009/01/10/stashing-your-changes.html
http://gitready.com/beginner/2009/03/13/smartly-save-stashes.html
7.Othercommands
● Temporarily ignoring files locally:
- git update-index --assume-unchanged <file>
- git update-index --no-assume-unchanged <file>
More info: http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html
● Pick out individual commits:
- git cherry-pick <commit>
More info: http://gitready.com/intermediate/2009/03/04/pick-out-individual-commits.html
8.gitautocomplete
Autocomplete Git Commands and Branch Names in Bash:
http://code-worrier.com/blog/autocomplete-git/
Usefullinks
● Good tips: http://gitready.com/
● Advanced: https://www.atlassian.com/git/tutorials/advanced-overview
● Git Community Book: http://git-scm.com/book/en/v2
Iván Palma | ipalma@mobaires.com

More Related Content

What's hot (20)

PDF
Git Version Control System
KMS Technology
 
PDF
Git and GitHub workflows
Arthur Shvetsov
 
PPTX
Git
Shinu Suresh
 
PDF
Git introduction workshop for scientists
Steven Hamblin
 
PPTX
Git in 10 minutes
Safique Ahmed Faruque
 
PDF
Git basics
GHARSALLAH Mohamed
 
KEY
Introduction To Git
Arnaud Seilles
 
ODP
Git presentation
Vikas Yaligar
 
PDF
Introduction to Git
Colin Su
 
PDF
Git & GitHub for Beginners
Sébastien Saunier
 
KEY
The everyday developer's guide to version control with Git
E Carter
 
PDF
Git Tricks — git utilities that make life git easier
Christoph Matthies
 
PPTX
Git learning
Amit Gupta
 
PDF
Advanced Git Tutorial
Sage Sharp
 
PPTX
Gitting out of trouble
Jon Senchyna
 
PPTX
01 - Git vs SVN
Edward Goikhman
 
PPTX
Git tutorial
TingYen Lee
 
PPTX
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Simplilearn
 
KEY
Git Basics at Rails Underground
Ariejan de Vroom
 
PPTX
Git basics
Denys Haryachyy
 
Git Version Control System
KMS Technology
 
Git and GitHub workflows
Arthur Shvetsov
 
Git introduction workshop for scientists
Steven Hamblin
 
Git in 10 minutes
Safique Ahmed Faruque
 
Git basics
GHARSALLAH Mohamed
 
Introduction To Git
Arnaud Seilles
 
Git presentation
Vikas Yaligar
 
Introduction to Git
Colin Su
 
Git & GitHub for Beginners
Sébastien Saunier
 
The everyday developer's guide to version control with Git
E Carter
 
Git Tricks — git utilities that make life git easier
Christoph Matthies
 
Git learning
Amit Gupta
 
Advanced Git Tutorial
Sage Sharp
 
Gitting out of trouble
Jon Senchyna
 
01 - Git vs SVN
Edward Goikhman
 
Git tutorial
TingYen Lee
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Simplilearn
 
Git Basics at Rails Underground
Ariejan de Vroom
 
Git basics
Denys Haryachyy
 

Viewers also liked (20)

PPTX
Git basic
Jinhan Heo
 
PDF
Git 101 tutorial presentation
Terry Wang
 
PDF
Git tutorial
Elli Kanal
 
PDF
Inverting The Testing Pyramid
Naresh Jain
 
PDF
초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)
민태 김
 
PDF
沒有 GUI 的 Git
Chia Wei Tsai
 
PPT
Power Sampling Reaches Consumers At Home
bborneman
 
PPTX
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
Yaroslav Birzool
 
PDF
Psicologia
Sandritarodriguez
 
PPS
MIGUEL HERNÁNDEZ CENTENARIO
Araceli Villalba
 
PPTX
Education 3.0
Michael Simkins
 
DOC
Template มคอ. 5
Aichom Naja
 
PDF
Skoda Yeti Launch 2009
Frank Communication
 
PPTX
Pedro López de alda
Student
 
PDF
Future of the ICT is now!
Tomo Popovic
 
PDF
Comunicación Digital para proyectos de desarrollo
Héctor Rodríguez
 
PPT
Graham 6pix power point presentation
grahamangela3333
 
PPTX
Clay'’s Life and Family
supercas57
 
PDF
BcnCoolHunter N8 Mayo 2016
Dafne Patruno
 
PPT
Csis 1514 excel ch 1 ppt
Hamdani Nurdin
 
Git basic
Jinhan Heo
 
Git 101 tutorial presentation
Terry Wang
 
Git tutorial
Elli Kanal
 
Inverting The Testing Pyramid
Naresh Jain
 
초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)
민태 김
 
沒有 GUI 的 Git
Chia Wei Tsai
 
Power Sampling Reaches Consumers At Home
bborneman
 
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
Yaroslav Birzool
 
Psicologia
Sandritarodriguez
 
MIGUEL HERNÁNDEZ CENTENARIO
Araceli Villalba
 
Education 3.0
Michael Simkins
 
Template มคอ. 5
Aichom Naja
 
Skoda Yeti Launch 2009
Frank Communication
 
Pedro López de alda
Student
 
Future of the ICT is now!
Tomo Popovic
 
Comunicación Digital para proyectos de desarrollo
Héctor Rodríguez
 
Graham 6pix power point presentation
grahamangela3333
 
Clay'’s Life and Family
supercas57
 
BcnCoolHunter N8 Mayo 2016
Dafne Patruno
 
Csis 1514 excel ch 1 ppt
Hamdani Nurdin
 
Ad

Similar to Git tutorial (20)

PDF
Advanced Git
Sergiu-Ioan Ungur
 
PPTX
Techoalien git
Aditya Tiwari
 
PPTX
Techoalien git
Aditya Tiwari
 
PPTX
Techoalien git
Aditya Tiwari
 
PPTX
Mastering GIT
Hasnaeen Rahman
 
PDF
Git training v10
Skander Hamza
 
PPTX
Git-ing out of your git messes
Katie Sylor-Miller
 
PDF
Source Code Management with Git
Things Lab
 
PDF
Git of every day
Alan Descoins
 
PDF
Advanced Git - Functionality and Features
All Things Open
 
PPTX
MakingGitWorkForYou
Kwen Peterson
 
PPTX
Git session Dropsolid.com
dropsolid
 
PPTX
Use Git like a pro - condensed
Jesús Miguel Benito Calzada
 
PPTX
An introduction to Git
Muhil Vannan
 
PDF
Git with the flow
Dana White
 
PDF
How to Really Get Git
Susan Tan
 
KEY
Use git the proper way
Jaime Buelta
 
PPTX
Git and git workflow best practice
Majid Hosseini
 
PDF
Collaborative development with Git | Workshop
Anuchit Chalothorn
 
PDF
Did you git yet?
Michael Fong
 
Advanced Git
Sergiu-Ioan Ungur
 
Techoalien git
Aditya Tiwari
 
Techoalien git
Aditya Tiwari
 
Techoalien git
Aditya Tiwari
 
Mastering GIT
Hasnaeen Rahman
 
Git training v10
Skander Hamza
 
Git-ing out of your git messes
Katie Sylor-Miller
 
Source Code Management with Git
Things Lab
 
Git of every day
Alan Descoins
 
Advanced Git - Functionality and Features
All Things Open
 
MakingGitWorkForYou
Kwen Peterson
 
Git session Dropsolid.com
dropsolid
 
Use Git like a pro - condensed
Jesús Miguel Benito Calzada
 
An introduction to Git
Muhil Vannan
 
Git with the flow
Dana White
 
How to Really Get Git
Susan Tan
 
Use git the proper way
Jaime Buelta
 
Git and git workflow best practice
Majid Hosseini
 
Collaborative development with Git | Workshop
Anuchit Chalothorn
 
Did you git yet?
Michael Fong
 
Ad

Recently uploaded (20)

PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
PDF
What companies do with Pharo (ESUG 2025)
ESUG
 
PPTX
Presentation about Database and Database Administrator
abhishekchauhan86963
 
PDF
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
PDF
Troubleshooting Virtual Threads in Java!
Tier1 app
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PPTX
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 
PDF
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
 
PDF
Virtual Threads in Java: A New Dimension of Scalability and Performance
Tier1 app
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
PDF
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
PPTX
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
PDF
System Center 2025 vs. 2022; What’s new, what’s next_PDF.pdf
Q-Advise
 
PDF
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PDF
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
 
PPTX
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
PDF
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
PDF
How to Download and Install ADT (ABAP Development Tools) for Eclipse IDE | SA...
SAP Vista, an A L T Z E N Company
 
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
What companies do with Pharo (ESUG 2025)
ESUG
 
Presentation about Database and Database Administrator
abhishekchauhan86963
 
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
Troubleshooting Virtual Threads in Java!
Tier1 app
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
 
Virtual Threads in Java: A New Dimension of Scalability and Performance
Tier1 app
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
System Center 2025 vs. 2022; What’s new, what’s next_PDF.pdf
Q-Advise
 
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
Activate_Methodology_Summary presentatio
annapureddyn
 
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
 
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
How to Download and Install ADT (ABAP Development Tools) for Eclipse IDE | SA...
SAP Vista, an A L T Z E N Company
 

Git tutorial

  • 2. Index ● Git Basics ● Useful when collaborating ● More advanced stuff
  • 3. Gitbasics Basics and prerequisites to follow this guide: ● Try Git: https://try.github.io/ ● Git The Three States: https://git-scm.com/book/en/v2/Getting-Started-Git- Basics#The-Three-States a. Committed (data in the repo) b. Modified (file changed but not committed) c. Staged (marked a modified file to go into your next commit) ● Understanding Git Conceptually: http://www.sbf5.com/~cduan/technical/git/ a. Repositories b. Branching c. Merging d. Collaborating e. Rebasing
  • 4. USefulwhencollaborating 1. Fork 2. Pull Requests 3. Remotes 4. Merge vs Rebase
  • 5. 1. fork A fork is a copy of a repository, that allows you to freely experiment without affecting the original project. Usual workflow: ● Fork the repository. ● Make the fix. ● Submit a pull request to the project owner. More info: https://help.github.com/articles/fork-a-repo/
  • 6. 2.pullrequests Pull requests let you tell others about changes you've pushed to a repository on GitHub. A pull request let pull your fix from your fork into the original repository. It allows: ● Review proposed changes ● Discuss changes ● Merge changes More info: https://help.github.com/articles/using-pull-requests/
  • 7. 3.Remotes Remote repositories are versions of your project that are hosted on the network. Collaborating with others involves managing these remote repositories. Useful commands: ● Show remotes: git remote -v ● Add remote: git remote add [shortname] [url] ● Rename remote: git remote rename [shortname] [newname] ● Remove remote: git remote rm [shortname] More info: https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes
  • 8. 4.mergevsRebase Both of these commands are designed to integrate changes from one branch into another branch—they just do it in very different ways. It’s easier to see what both commands do with the following example: 1. Start working on a new feature in a dedicated branch. 2. A team member updates the master branch with new commits. 3. To incorporate the new commits into your feature branch, you have two options: merging or rebasing.
  • 9. 4.mergevsRebase The Merge Option: git checkout feature git merge master or git merge master feature This creates a new “merge commit” in the feature branch. Merging: ● It’s a non-destructive operation (the existing branches are not changed). ● The feature branch will have an extraneous merge commit every time you need to incorporate upstream changes.
  • 10. 4.mergevsRebase The Rebase Option: git checkout feature git rebase master This moves the feature branch to begin on the tip of the master branch. Rebasing: ● Cleaner project history (new commit for each commit in the original branch). ● Results in a perfectly linear project history.
  • 11. 4.mergevsRebase Important things for Rebase ● The Golden Rule of Rebasing: never use it on public branches. ● Force-Pushing: git push --force. This overwrites the remote master branch to match the rebased one from your repository. More info: https://www.atlassian.com/git/tutorials/merging-vs-rebasing https://www.atlassian.com/git/articles/git-team-workflows-merge-or-rebase/
  • 12. Moreadvancedstuff 1. Reset 2. Checkout 3. Revert 4. Reflog 5. Log 6. Stash 7. Other commands 8. Git Autocomplete
  • 13. 1. reset On the commit-level, moves the tip of a branch to a different commit. Example: git reset HEAD~2
  • 14. 1. reset Flags: --soft, --mixed and --hard. Examples: git reset --mixed HEAD Unstage all changes, but leaves them in the working directory git reset --hard HEAD Completely throw away all your uncommitted changes
  • 15. 2.checkout Most common usage: switch between branches: git checkout hotfix . You can also check out arbitrary commits: git checkout HEAD~2 . However, since there is no branch reference to the current HEAD, this puts you in a detached HEAD state.
  • 16. 3.revert Undoes a commit by creating a new commit. This is a safe way to undo changes. Example: git revert HEAD~2
  • 17. summary:Reset-Checkout-Revert Command Scope Common use cases git reset Commit-level Discard commits in a private branch or throw away uncommited changes git reset File-level Unstage a file git checkout Commit-level Switch between branches or inspect old snapshots git checkout File-level Discard changes in the working directory git revert Commit-level Undo commits in a public branch git revert File-level (N/A) More info: https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting
  • 18. 4.reflog It records almost every change you make in your repository. You can think of it is a chronological history of everything you’ve done in your local repo. Example: you can use this to revert to a state that would otherwise be lost, like restoring some lost commits. git reflog
  • 19. 5.Log Shows the commit logs. There are some useful flags that let you format or filter the output: ● --oneline ● --decorate (display all of the references) ● --graph ● --max-count= ● --author=<pattern> ● --grep=<pattern> More info: http://git-scm.com/docs/git-log
  • 20. 6.stash Let you pause what you’re currently working on and come back to it later. Useful stash commands: ● git stash / git stash save <message> ● git stash apply / git stash pop ● git stash list ● git stash drop <id> More info: http://gitready.com/beginner/2009/01/10/stashing-your-changes.html http://gitready.com/beginner/2009/03/13/smartly-save-stashes.html
  • 21. 7.Othercommands ● Temporarily ignoring files locally: - git update-index --assume-unchanged <file> - git update-index --no-assume-unchanged <file> More info: http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html ● Pick out individual commits: - git cherry-pick <commit> More info: http://gitready.com/intermediate/2009/03/04/pick-out-individual-commits.html
  • 22. 8.gitautocomplete Autocomplete Git Commands and Branch Names in Bash: http://code-worrier.com/blog/autocomplete-git/
  • 23. Usefullinks ● Good tips: http://gitready.com/ ● Advanced: https://www.atlassian.com/git/tutorials/advanced-overview ● Git Community Book: http://git-scm.com/book/en/v2 Iván Palma | [email protected]