Git
Version control systems
Why version control?
Download and install Git
Introduce yourself to Git
Choose an editor
Your repositories
Using your repositories on panther
Using your repository
Typical workflow
Helpful gitBash commands
Git log commands
Git log pretty
Good aliases
228.00K
Category: programmingprogramming

Git. A distributed version control system

1. Git

A distributed version control system
Powerpoint credited to University of PA
And modified by Pepper
5-Sep-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.
Some well-known version control systems are CVS, Subversion,
Mercurial, and Git
Almost all “real” projects use some kind of version control
Essential for team projects, but also very useful for individual projects
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
Install Git on your machine from http://git-scm.com/downloads
Standard one: http://git-scm.com/downloads
Here’s one from StackExchange:
http://stackoverflow.com/questions/315911/git-for-beginners-thedefinitive-practical-guide#323764
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 [email protected]
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:
You may also want to turn on colors:
git config --global core.editor /usr/bin/vim
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://[email protected]/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
Update the respository:
git push origin
See what is on the repository
git commit -m "the reason for the change"
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
English     Русский Rules