-Beginners

Install git:

  • Linux(Debian)
    • sudo apt-get install git
  • Linux(Fedora)
    • sudo yum install git
  • Mac
    • http://git-scm.com/download/mac
  • Windows
    • http://git-scm.com/download/win

What is verison control system?

  • A system that keeps record of your changes
  • Allows for collaborative development
  • Allows you to know who made what changes and when
  • Allows you to revert any changes and go back to a previous state

What is verison control system?

  • Distributed version control
  • User keeps entire code and history on their location machines
    • Users can make any changes without Internet access
    • (Except pushing and pulling from a remote server)

What is git?

  • Git isn't the only version control system

How does git work?

  • Lets look at some important git terminology

Key concept: Snapshot

  • The way git keeps track of your code history
  • Essentially records what all your files look like at a given point in time
  • You decide when to take a snapshot, and of what files
  • Have the ability to go back to visit any snapshot

Key concept: Commit

  • The act of creating a snapshot
  • Can be a noun or verb:
    • "I commited code"
    • "I just made a new commit"
  • Essentially, a project is made up of a bunch of commits

Key concept: Commit

  • A commit contains three pieces of information:
    • Information about how the files changed from previously
      • Called the "diff"
    • A reference to the commit that came before it
      • Called the "parent commit"
    • A hash code name
      • will look something like this:
      • a007db19dc4d0034r12b55bb00a

Key concept: Repository

  • Often shortened to "repo"
  • A collection of all the files and the history of those files
    • Consists of all your commits
    • Place where all your hard work is stored

Key concept: Repository

  • Can live on a local machine or on a remote server (Github!)
  • The act of copying  a repository from a remote server is called cloning
  • Cloning from a remote server allows team to work together

Key concept: Repository

  • The process of downloading commits that don't exist on your machine from a remote repository is called pulling changes
  • The process of adding your local changes to the remote repository is called pushing changes

Key concept: Branches

  • All commits in git live on some branch
  • But there can be many, many branches
  • The main branch in a project is called the master branch

Key concept: Merging

  • Once you are done with your feature, you merge it back into master

How do you make a commit anyway?

  • When a file is ready to be put in a commit, you add it onto  the "staging" or "index"
    • $ git add file.txt
  • Commit the changes added into "staging" area
    • $ git commit

Basic commands:

  • $ git init
    • initialize a repository
  • $ git status
    • get status of your repository
  • $ git add
    • Add files into the staging area for git
  • $ git commit
    • Commit the files you have changed/removed/added
  • $ git branch
    • To checkout what is your current branch in local repo

Basic commands:

  • $ git branch feature1
    • create a new branch named feature1
  • $ git checkout feature1
    • switch to the branch named feature1
  • $ git merge
    • merge the changes into current branch from feature1
  • $ git clone <remote_url>
    • Clone repository from a remote server
  • $ git pull
    • pull the changes from remote repository
  • $ git push
    • push the changes into remote repository

Hurray!

I know how git works :)

Made with Slides.com