SlideShare a Scribd company logo
Git
A distributed version control system
Powerpoint credited to University of PA
And modified by Pepper
31-Jul-23
Version control systems
 Version control (or revision control, or source control) is all
about managing multiple versions of documents, programs, web
sites, etc.
 Almost all “real” projects use some kind of version control
 Essential for team projects, but also very useful for individual projects
 Some well-known version control systems are CVS, Subversion,
Mercurial, and Git
 CVS and Subversion use a “central” repository; users “check out” files,
work on them, and “check them in”
 Mercurial and Git treat all repositories as equal
 Distributed systems like Mercurial and Git are newer and are
gradually replacing centralized systems like CVS and Subversion
2
Why version control?
 For working by yourself:
 Gives you a “time machine” for going back to earlier versions
 Gives you great support for different versions (standalone,
web app, etc.) of the same basic project
 For working with others:
 Greatly simplifies concurrent work, merging changes
 For getting an internship or job:
 Any company with a clue uses some kind of version control
 Companies without a clue are bad places to work
3
Download and install Git
 There are online materials that are better than any that I could
provide
 Standard one: http://git-scm.com/downloads
 Here’s one from StackExchange:
http://stackoverflow.com/questions/315911/git-for-beginners-the-
definitive-practical-guide#323764
 Install Git on your machine from http://git-scm.com/downloads
 Accept context menu items
 Git access:
 Right click from windows explorer
 gitBash to enter commands
4
Introduce yourself to Git
 Start git / gitBash
 Enter these lines (with appropriate changes):
 git config --global user.name "John Smith"
 git config --global user.email jsmith@seas.upenn.edu
 You only need to do this once
 If you want to use a different name/email address for a
particular project, you can change it for just that project
 cd to the project directory
 Use the above commands, but leave out the --global
5
Choose an editor
 When you “commit,” git will require you to type in a
commit message
 For longer commit messages, you will use an editor
 The default editor is probably vim
 To change the default editor:
 git config --global core.editor /usr/bin/vim
 You may also want to turn on colors:
 git config --global color.ui auto
 See your options:
 git config -l
6
Your repositories
 We have created 6 class repositories on panther, and
here are their paths.

ssh://user_name@panther.adelphi.edu/opt/git/csc271books.git

ssh://user_name@panther.adelphi.edu/opt/git/csc271tv.git

ssh://user_name@panther.adelphi.edu/opt/git/csc271store.git

ssh://user_name@panther.adelphi.edu/opt/git/csc271movies1.git

ssh://user_name@panther.adelphi.edu/opt/git/csc271games1.git

ssh://user_name@panther.adelphi.edu/opt/git/csc271movies2.git

Prior class: csc440Spring14r1

Use instructions to follow
7
Using your repositories on panther
 Get the files from your repository before starting
 Make a local respository as a clone of master
 git clone /opt/git/csc271books
 See all the contents of the folder
 ls -a to see the .git folder.
 Make changes
 See what changed
 git diff
 Stage changes
 git add –all (or particular files)
 git diff –cached
 Still only in your repository
8
Using your repository
 Put changes back up into repository
 Commit your staged changes in your repository
 git commit -m "the reason for the change"
 Update the respository:
 git push origin
 See what is on the repository
 git remote
 Get what is on repository
 git pull
 If it says to resolve manually, just vi that file and see the head
which is yours
9
Typical workflow
 git pull remote_repository
 Get changes from a remote repository and merge them into
your own repository
 git status
 See what Git thinks is going on
 Use this frequently!
 Work on your files
 git add –-all (or just changes)
 git commit –m “What I did”
 git push
10
Helpful gitBash commands
 Show staged differences: git diff -- cached
 Show status : git status
 Show branches: git branch
 See history: git log
 Checkout a branch: git checkout branch
 Fetch so you can look but maybe not take: git fetch
 Pull will fetch and merge with what you have: git merge
11
Git log commands
 git log
 --pretty=oneline --max-count=2 git log
 --pretty=oneline --since='5 minutes ago' git log
 --pretty=oneline --until='5 minutes ago' git log
 --pretty=oneline --author=<your name> git log
 --pretty=oneline –all
12
Git log pretty
 git log --pretty=format:"%h %ad | %s%d [%an]" --graph --
date=short
 --pretty="..." defines the output format.
 %h is the abbreviated hash of the commit
 %d commit decorations (e.g. branch heads or tags)
 %ad is the commit date
 %s is the comment
 %an is the name of the author
 --graph tells git to display the commit tree in the form of
an ASCII graph layout
 --date=short keeps the date format short and nice
13
Good aliases
 alias gs='git status '
 alias ga='git add '
 alias gb='git branch '
 alias gc='git commit'
 alias gd='git diff'
 alias go='git checkout '
 alias gk='gitk --all&'
 alias gx='gitx --all'
 alias got='git '
 alias get='git '
14

More Related Content

PPT
git2nvlkndvslnvdslnlknvdlnlvdsnlknsdvlkn.ppt
PPT
Git and GitHUB Explanation and simple coding for CLI
PPT
git2.ppt
PPT
PPT
PPT
git.ppt
PPT
PPTX
Source control
git2nvlkndvslnvdslnlknvdlnlvdsnlknsdvlkn.ppt
Git and GitHUB Explanation and simple coding for CLI
git2.ppt
git.ppt
Source control

Similar to git2.ppt (20)

PPTX
Basics of git
PDF
PPT
390a gitintro 12au
PDF
Version Control System - Git
PPT
Git and fundamentals
PPTX
sample.pptx
PDF
Git hub
PDF
Git Pocket Guide A Working Introduction 1st Edition Richard E. Silverman
KEY
Let's Git this Party Started: An Introduction to Git and GitHub
PPTX
Getting Started with Git: A Primer for SVN and TFS Users
PPTX
github ppt git ppt on git hub to know ab
PDF
Collaborative development with Git | Workshop
PDF
18 Git #burningkeyboards
PPT
391Lecture0909 Vision control of git.ppt
PPT
CSE 390 Lecture 9 - Version Control with GIT
PDF
Git basics
PPT
Introduction to Git
ODP
Git tech talk
PPTX
Git Overview
PPT
Fundamentals and basics of Git and commands
Basics of git
390a gitintro 12au
Version Control System - Git
Git and fundamentals
sample.pptx
Git hub
Git Pocket Guide A Working Introduction 1st Edition Richard E. Silverman
Let's Git this Party Started: An Introduction to Git and GitHub
Getting Started with Git: A Primer for SVN and TFS Users
github ppt git ppt on git hub to know ab
Collaborative development with Git | Workshop
18 Git #burningkeyboards
391Lecture0909 Vision control of git.ppt
CSE 390 Lecture 9 - Version Control with GIT
Git basics
Introduction to Git
Git tech talk
Git Overview
Fundamentals and basics of Git and commands

Recently uploaded (20)

PDF
Anesthesia in Laparoscopic Surgery in India
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
Institutional Correction lecture only . . .
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
TR - Agricultural Crops Production NC III.pdf
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Business Ethics Teaching Materials for college
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PDF
Insiders guide to clinical Medicine.pdf
Anesthesia in Laparoscopic Surgery in India
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Institutional Correction lecture only . . .
Renaissance Architecture: A Journey from Faith to Humanism
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Abdominal Access Techniques with Prof. Dr. R K Mishra
human mycosis Human fungal infections are called human mycosis..pptx
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPH.pptx obstetrics and gynecology in nursing
TR - Agricultural Crops Production NC III.pdf
Microbial diseases, their pathogenesis and prophylaxis
O5-L3 Freight Transport Ops (International) V1.pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Module 4: Burden of Disease Tutorial Slides S2 2025
STATICS OF THE RIGID BODIES Hibbelers.pdf
2.FourierTransform-ShortQuestionswithAnswers.pdf
Business Ethics Teaching Materials for college
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
Insiders guide to clinical Medicine.pdf

git2.ppt

  • 1. Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 31-Jul-23
  • 2. Version control systems  Version control (or revision control, or source control) is all about managing multiple versions of documents, programs, web sites, etc.  Almost all “real” projects use some kind of version control  Essential for team projects, but also very useful for individual projects  Some well-known version control systems are CVS, Subversion, Mercurial, and Git  CVS and Subversion use a “central” repository; users “check out” files, work on them, and “check them in”  Mercurial and Git treat all repositories as equal  Distributed systems like Mercurial and Git are newer and are gradually replacing centralized systems like CVS and Subversion 2
  • 3. Why version control?  For working by yourself:  Gives you a “time machine” for going back to earlier versions  Gives you great support for different versions (standalone, web app, etc.) of the same basic project  For working with others:  Greatly simplifies concurrent work, merging changes  For getting an internship or job:  Any company with a clue uses some kind of version control  Companies without a clue are bad places to work 3
  • 4. Download and install Git  There are online materials that are better than any that I could provide  Standard one: http://git-scm.com/downloads  Here’s one from StackExchange: http://stackoverflow.com/questions/315911/git-for-beginners-the- definitive-practical-guide#323764  Install Git on your machine from http://git-scm.com/downloads  Accept context menu items  Git access:  Right click from windows explorer  gitBash to enter commands 4
  • 5. Introduce yourself to Git  Start git / gitBash  Enter these lines (with appropriate changes):  git config --global user.name "John Smith"  git config --global user.email jsmith@seas.upenn.edu  You only need to do this once  If you want to use a different name/email address for a particular project, you can change it for just that project  cd to the project directory  Use the above commands, but leave out the --global 5
  • 6. Choose an editor  When you “commit,” git will require you to type in a commit message  For longer commit messages, you will use an editor  The default editor is probably vim  To change the default editor:  git config --global core.editor /usr/bin/vim  You may also want to turn on colors:  git config --global color.ui auto  See your options:  git config -l 6
  • 7. Your repositories  We have created 6 class repositories on panther, and here are their paths.  ssh://user_name@panther.adelphi.edu/opt/git/csc271books.git  ssh://user_name@panther.adelphi.edu/opt/git/csc271tv.git  ssh://user_name@panther.adelphi.edu/opt/git/csc271store.git  ssh://user_name@panther.adelphi.edu/opt/git/csc271movies1.git  ssh://user_name@panther.adelphi.edu/opt/git/csc271games1.git  ssh://user_name@panther.adelphi.edu/opt/git/csc271movies2.git  Prior class: csc440Spring14r1  Use instructions to follow 7
  • 8. Using your repositories on panther  Get the files from your repository before starting  Make a local respository as a clone of master  git clone /opt/git/csc271books  See all the contents of the folder  ls -a to see the .git folder.  Make changes  See what changed  git diff  Stage changes  git add –all (or particular files)  git diff –cached  Still only in your repository 8
  • 9. Using your repository  Put changes back up into repository  Commit your staged changes in your repository  git commit -m "the reason for the change"  Update the respository:  git push origin  See what is on the repository  git remote  Get what is on repository  git pull  If it says to resolve manually, just vi that file and see the head which is yours 9
  • 10. Typical workflow  git pull remote_repository  Get changes from a remote repository and merge them into your own repository  git status  See what Git thinks is going on  Use this frequently!  Work on your files  git add –-all (or just changes)  git commit –m “What I did”  git push 10
  • 11. Helpful gitBash commands  Show staged differences: git diff -- cached  Show status : git status  Show branches: git branch  See history: git log  Checkout a branch: git checkout branch  Fetch so you can look but maybe not take: git fetch  Pull will fetch and merge with what you have: git merge 11
  • 12. Git log commands  git log  --pretty=oneline --max-count=2 git log  --pretty=oneline --since='5 minutes ago' git log  --pretty=oneline --until='5 minutes ago' git log  --pretty=oneline --author=<your name> git log  --pretty=oneline –all 12
  • 13. Git log pretty  git log --pretty=format:"%h %ad | %s%d [%an]" --graph -- date=short  --pretty="..." defines the output format.  %h is the abbreviated hash of the commit  %d commit decorations (e.g. branch heads or tags)  %ad is the commit date  %s is the comment  %an is the name of the author  --graph tells git to display the commit tree in the form of an ASCII graph layout  --date=short keeps the date format short and nice 13
  • 14. Good aliases  alias gs='git status '  alias ga='git add '  alias gb='git branch '  alias gc='git commit'  alias gd='git diff'  alias go='git checkout '  alias gk='gitk --all&'  alias gx='gitx --all'  alias got='git '  alias get='git ' 14