"Git is a Free and open sourcedistributed version control system designed to handle everything from small to very large projects with speed and efficiency."
Distributed
Github
Github is not Git
Cloud service
Central repository. Although Git is decentralized
Extra features on top of Git
Pull requests
Visualisations
Permission management
Organizations
Tools
Command line
Best way to do git. Most servers don't have a UI.
Learn this first.
Unix users. Add small script to bash_profile to show current working branch
Source tree
Drag-Drop UI
Good visual overview
Use it for the more complex interactions
SourceTree
Basic Concepts
CloneMake a local copy of a repository
When you want to make changes to the existing repo.
Fork Make a clone of a repository. On github. Your own central version.
When you want to create your own version of an existing software project.
Git initCreate a new repository from existing folder
Remote: Link to an external repository
Local modification
Git status
Git add
Git commit
Git reset
Git remove
Pushing and Pulling
Merge Conflicts
Branching & tagging
Git Stash
git stash
git stash pop
Undo Changes
Never rewrite history
Instead, use git revert
commits the inverse
Use git rebase carefully!
Git Flow
Model on how to do branching
Industry Standard
For World of Balance
Master - Latest Stable version
Hotfixes - Merges straight into master
Development - Unstable Branch
Feature branches - sub branch of development for specific features. Very unstable.