GITWorkshop by @AlSayedGamal
AGENDA
• Introduction
• getting started
• git workflow
• Tips and tricks
• social coding (github)
INTRODUCTION
• What’s git and what’s VCS?
• git history
SH*T HAPPENSIf it’s not power outage it’s disk failure os failure,etc..
Sayevt ya Ali
WHAT ABOUT VCS THAT HANDLES LINUX ?The development of Git began on 3 April 2005. The project was announced on 6 April, and became self-hosting as of 7 April.
GIT CHARACTERISTICS• Strong support for non-linear
development
• Distributed development
• Compatibility with existing systems/protocols
• Efficient handling of large projects
• Cryptographic authentication of history
• Pluggable merge strategies
• Toolkit-based design(C & Shell)
HOW GIT STORES DATA
• git has three main types
• blob (binary large object)
• tree (basically tree of blobs)
• graph (directed graph of commits)
INSTALLING GIT• On centos you will always have
dependancies resolved.
• On ubuntu package name is git >= 12.04
• For mac I use homebrew however ports and fink should work the same.
• On windows give linux a chance or try cygwin it may be installed else go for msysGit >= 1.7.10
yum install git
apt-get install git
redhat
debian
brew install git
use linux or
mac
windows
install cygwin or msysGit
GETTING STARTED• Git the command line
• New repo
• New file
• Basic config
• First commit
• View difference
• Remove and rename files
• Copy your repo
BRANCHING AND MERGING
• git branch <branch name>
• git checkout -b <branch name>
• git checkout <branch name>
• git merge <other branch>
GIT FLOW BRANCHINGgit flow command line tool will help you structure your
app.
TIPS AND TRICKSThese tips will be used almost in every project.
IGNORE.gitignore files that shouldn’t be tracked.
Like .pyc files
BLAMEgit blame to know who is responsible of this change.
Try sublime (and your favourite IDE) blame integration.
TEST > PUSHBefore pushing make sure that you pass test
django hint: in .bachrc alias gpush to ./manage.py test & git push origin develop
./manage.py test # if all pass git push origin develop
STASH AND CLEAN
• git stash will clean your stage to the most recent commit.
• git stash apply to bring your mess again.
• Clean untracked files:
• git clean -d <path>
TAG
• git tag -a v1.0.0 -m "Creating the first release candidate”
• git show v1.0.0
GITHUB
• Normal Commercial membership.
• Star, watch and follow.
• pulse.
REFERENCES• gitready.com
• git-scm.com
• Book: version control with git 2nd edition - O’Reilly.
• wikipedia | en.wikipedia.org/wiki/Git_(software)
• github.com
QUESTIONS ?
GIT COMMIT -M “THANK YOU”