SlideShare a Scribd company logo
Git
A distributed version control system
Powerpoint credited to University of PA
And modified by Pepper
Dec 15, 202
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 just 1 git repository so far, but plan to
create more if you want to use panther's git.
 ssh://pepper@panther.adelphi.edu/opt/git/csc480ASpring15.git

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/csc480ASpring15.git

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
PPT
git2.ppt
PPTX
Git 101
PPTX
Git and github
PPTX
Git and Github
DOCX
Git github
PPTX
1-Intro to VC & GIT PDF.pptx
PPT
GIT By Sivakrishna
git2.ppt
Git 101
Git and github
Git and Github
Git github
1-Intro to VC & GIT PDF.pptx
GIT By Sivakrishna

Similar to Git and GitHUB Explanation and simple coding for CLI (20)

PPTX
Git training (basic)
PPTX
Introduction to Git and Github
PPTX
Git & Github
PDF
Git Init (Introduction to Git)
PPT
PPT
git.ppt
PPT
ODP
Git Workshop : Getting Started
PPTX
Mastering git - Workflow
PDF
PDF
Git 入门与实践
PPT
391Lecture0909 Vision control of git.ppt
PDF
Gn unify git
DOCX
setting up a repository using GIT
PDF
Git 入门 与 实践
PDF
Git basics for beginners
PPT
CSE 390 Lecture 9 - Version Control with GIT
PPTX
Git Training
PDF
Git hub
PPTX
Mini-training: Let’s Git It!
Git training (basic)
Introduction to Git and Github
Git & Github
Git Init (Introduction to Git)
git.ppt
Git Workshop : Getting Started
Mastering git - Workflow
Git 入门与实践
391Lecture0909 Vision control of git.ppt
Gn unify git
setting up a repository using GIT
Git 入门 与 实践
Git basics for beginners
CSE 390 Lecture 9 - Version Control with GIT
Git Training
Git hub
Mini-training: Let’s Git It!
Ad

Recently uploaded (20)

PDF
Well-logging-methods_new................
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
Construction Project Organization Group 2.pptx
PDF
Digital Logic Computer Design lecture notes
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
Geodesy 1.pptx...............................................
PPTX
web development for engineering and engineering
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
DOCX
573137875-Attendance-Management-System-original
PDF
Structs to JSON How Go Powers REST APIs.pdf
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PDF
PPT on Performance Review to get promotions
PPT
Project quality management in manufacturing
PPTX
UNIT 4 Total Quality Management .pptx
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPTX
Welding lecture in detail for understanding
Well-logging-methods_new................
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Construction Project Organization Group 2.pptx
Digital Logic Computer Design lecture notes
Lesson 3_Tessellation.pptx finite Mathematics
OOP with Java - Java Introduction (Basics)
Geodesy 1.pptx...............................................
web development for engineering and engineering
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
bas. eng. economics group 4 presentation 1.pptx
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
573137875-Attendance-Management-System-original
Structs to JSON How Go Powers REST APIs.pdf
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PPT on Performance Review to get promotions
Project quality management in manufacturing
UNIT 4 Total Quality Management .pptx
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Welding lecture in detail for understanding
Ad

Git and GitHUB Explanation and simple coding for CLI

  • 1. Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper Dec 15, 202
  • 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 just 1 git repository so far, but plan to create more if you want to use panther's git.  ssh://pepper@panther.adelphi.edu/opt/git/csc480ASpring15.git  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/csc480ASpring15.git  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