Git A distributed version control system Powerpoint credited to University of PA And modified by...

14
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper Aug 30, 2 022

Transcript of Git A distributed version control system Powerpoint credited to University of PA And modified by...

Page 1: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

Git

A distributed version control system

Powerpoint credited to University of PA

And modified by Pepper

Apr 21, 2023

Page 2: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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

Page 3: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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

Page 4: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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

Page 5: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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

Page 6: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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

Page 7: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

Your repositories

We have created 6 class repositories on panther, and here are their paths.

ssh://[email protected]/opt/git/csc271books.git ssh://[email protected]/opt/git/csc271tv.git ssh://[email protected]/opt/git/csc271store.git ssh://[email protected]/opt/git/csc271movies1.git ssh://[email protected]/opt/git/csc271games1.git ssh://[email protected]/opt/git/csc271movies2.git Prior class: csc440Spring14r1

Use instructions to follow

7

Page 8: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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

Page 9: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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

Page 10: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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

Page 11: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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

Page 12: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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

Page 13: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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

Page 14: Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.

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