Git is the most popular SCM today






GIT - the stupid content tracker



  • made out of need - Linux Kernel SCM of choice was made non-free
  • made out of past experience
  • made for speed and large scale
  • made for the open source community



2005, original file:

GIT - the stupid content tracker
"git" can mean anything, depending on your mood.


- random three-letter combination that is pronounceable, and not
  actually used by any common UNIX command.  The fact that it is a
  mispronounciation of "get" may or may not be relevant.
- stupid. contemptible and despicable. simple. Take your pick from the
  dictionary of slang.
- "global information tracker": you're in a good mood, and it actually
  works for you. Angels sing, and a light suddenly fills the room.
- "goddamn idiotic truckload of sh*t": when it breaks


Basic ideas

  • Fast & simple

  • Support for non-linear development 

  • Fully distributed

  • Able to handle large projects

Architectural choices

  • Everything is local
  • Snapshot based
  • Content based IDs
  • Branch oriented

Basic setup

  • download git

  • run and install, put git in your path

  • run git bash here (from anywhere now!)

  • git config --global "John Doe"
    git config --global

Creating an Empty repo


and if you want to add existing files

  • git commit -am " initial commit"
  • git init

Basic terms

Working directory -

your projects files as on the disk currently

Staging Area -
changes considered for the next commit

Commit history -
Past project states

Checkout -

Take objects or whole state from history to WD



Basic terms

Branch -

Branching of commits history

Merge  -
connect two commits to new one

Remote -
Another git repo

Transfer commits from remote

Pull -

Fetch & Merge from remote to local




Local workshop

Git Flow

Git in large scale

Class Workshop

GitHub - Git Remote repos @ work

  • Github is a very popular git cloud host 
  • "Fork" is  that github calls cloning an existing repo to your account
  • You can merge/compare across forks
  • The device for suggesting changes is called Pull-request (PR)



1 thing to bear in mind

  • Everything is local - even merge from origin/develop
    (untill you fetch...)

Distributed Workshop


By Nadav SInai


Git workshop for

  • 1,146
Loading comments...

More from Nadav SInai