1. Reporter: Brian
  2. Terms
    1. Staging
      1. mark changes of a file relavant to a version control
    2. Committing
      1. add the changed file to the repository
    3. Branching
      1. a total copy of the main stream
      2. can make modifications without affecting the main line of the code
      3. The default branch is called master.
      4. git branch
      5. git branch testing
      6. git push origin testing
      7. git checkout branchname
    4. Merging
      1. merge different branches of features into one main line
      2. git merge testing
      3. git branch -d testing
      4. solve merging problems
    5. Tags
      1. A tag points to a certain point in time in a specific branch.
    6. Revision
      1. Represents a version of the source code.
    7. Rebase
      1. The rebase command allows you to combine several commits into one commit in one/more than one branch.
        1. one branch
        2. more than one branch
          1. Rebase takes the changes of a branch, creates a patch and applies it to another branch.
      2. allows the user to rewrite some of the commit history (cleaning it up) before pushing your changes to a remote repository.
      3. git rebase master
  3. Repository
    1. Every Git repository is stored in the .git folder of the directory in which the Git repository has been created.
    2. This directory contains the complete history of the repository.
    3. The .git/config file contains the local configuration for the repository.
  4. Distributed Version Control
    1. allow many developers to work on a given project without necessarily being connected to a common network.
  5. command line instructions
    1. git init
    2. git add .
    3. git commit -m "messages here"
    4. git log
    5. git diff
    6. git status
    7. gitk --all
    8. git commit --ammend -m "new messages here"
    9. delete files
    10. git amend(e.g. git commit --amend -m "More changes - now correct")
    11. git pull ../remote-repository.git/
    12. git clean -n
    13. git clean -f
    14. git checkout commit_name
      1. can also be used to revert removed files
    15. git reset HEAD test01
  6. Git repositories
    1. Local
    2. Remote
      1. To create such a repository, set the --bare flag.
        1. git remote add origin ../remote-repository.git
      2. git remote
  7. distributed version control system
    1. Git keep track of all versions. Therefore you can revert to any point in your source code history.
    2. In a distributed version control system everyone has a complete copy of the source code