Git workshop

Post on 02-Jul-2015

496 views 0 download

description

Introduction to git SCM, git flow workflow and some best practices.

transcript

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”